js数字累加变拼接怎么搞

CaixK
  • 511

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

   PRTable.forEach(item=>{
        iDeposit  += Number(item.InitialDeposit)
    })
回复
阅读 2.1k
6 个回答
✓ 已被采纳

iDeposit 别定义成字符串

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

估计你的

iDeposit  

是字符串

君迹我心
  • 4.7k

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

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

iDeposit类型也需要是数字类型

宣传栏