Javascript 这些数字是连在一起的,而不是加起来的
我对“reduce”函数没有什么问题Javascript 这些数字是连在一起的,而不是加起来的,javascript,typescript,Javascript,Typescript,我对“reduce”函数没有什么问题 let array = [ 0: "720" 1: "1080" ] array.reduce((a,b) => a + b) 有问题,这个返回给我7201080,但是我需要1800你需要在number数组中转换字符串。reduce((a,b)=>+a++b)为reduce回调函数提供初始值0,并使用number()将字符串转换为数字。 let数组=[ "720", "1080" ] console.log(array.reduce((a,
let array = [
0: "720"
1: "1080"
]
array.reduce((a,b) => a + b)
有问题,这个返回给我
7201080
,但是我需要1800
你需要在number数组中转换字符串。reduce((a,b)=>+a++b)
为reduce回调函数提供初始值0
,并使用number()将字符串转换为数字。
let数组=[
"720",
"1080"
]
console.log(array.reduce((a,b)=>a+Number(b,0))
您说您的问题是(boldemphasis):
数字被合并,而不是相加
但事实并非如此,这也不是你的问题
真正的问题是代码中没有s。只有s,字符串的二进制中缀运算符是:“A”+“b”==“Ab”//not 21
解决问题的“最佳”方法是在源代码处解决问题,这样首先就可以使用数字而不是字符串:
const数组=[
720,
1080
];
log(array.reduce((a,b)=>a+b));
//1800
@B4UTR3N最好在reduce,数组中设置initialValue。reduce((a,b)=>+a++b,0)
。在这种情况下,您不需要将a转换为数字,因为它总是数字数组。reduce((a,b)=>a++b,0)
提示:代码中没有数字。