向其添加迭代时如何让它进入一个块?

时间:2019-01-23 13:48:38

标签: javascript variables var let

想象:

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吗?

2 个答案:

答案 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)