想象:
const arr = ['a','b','c'];
let num;
const incr = arr.map((el, i) => {
num += el;
}
// num is undefined in incr
如何在num
函数中使用incr
,使其可以在每个循环中递增?
尝试将num
放入incr
内不会导致适当的增量,因为它将在每个循环中被覆盖。
我应该改用var
吗?
答案 0 :(得分:2)
您没有初始化num
,因此其值为undefined
。
const arr = ['a','b','c'];
let num = '';
arr.forEach((el, i) => {
num += el;
});
这将使您在'abc'
中num
。
不过,.reduce
可以更好地积累值的习惯用法:
const arr = ['a','b','c'];
const num = arr.reduce((acc, i) => acc + i);
更好的是,您在这里所做的操作(即将数组连接成字符串)由.join
提供:
const arr = ['a','b','c'];
const num = arr.join('');
答案 1 :(得分:0)
您可以使用.reduce实现此目的
const arr = ['a','b','c'];
const incr = arr.reduce((num,el, i) => {
num += el;
return num
},"")
console.log(incr)