js数字累加变拼接怎么搞

用number转了还是拼接,请问一下解决办法

   PRTable.forEach(item=>{
        iDeposit  += Number(item.InitialDeposit)
    })
阅读 4.1k
6 个回答

iDeposit 别定义成字符串

var total = ['1', '2', '3'].reduce(function (sum, current) {
  return Number(sum) + Number(current);
}, 0);
let iDeposit = 0;
PRTable.forEach(item => {
    if(!isNaN(Number(item.InitialDeposit))) {
        iDeposit += Number(item.InitialDeposit);
    }
})

估计你的

iDeposit  

是字符串

隐式类型转换的目标类型是算符前的变量类型,而这里算符前是 iDeposit,所以如果 iDeposit 是字符串的话,后面加个 Number 并不会改变最终的类型。
把累加结果放到 + 算符前面应该可以解决问题:

iDeposit  = PRTable.reduce((pre, cur) => pre + cur, 0) + iDeposit;

iDeposit类型也需要是数字类型

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题