我写了以下代码:
let abcd= Array.from({length:7},(curr,i)=> { console.log(curr,i); i+1;})
console.log(abcd); // returns [undefined *7]
我不明白为什么abcd没有初始化为1到7?
您需要返回值,您只是在递增它,而不是返回它,因此添加了undefined
。
const result = Array.from({ length: 7 }, (curr, i) => i + 1 );
console.log(result)
从传递给array.from的函数返回的值被添加到数组中。这里你没有返回任何东西,所以它自动返回undefined
,你得到的数组包含7个undefined
let abcd= Array.from({length:7},(curr,i)=> {
console.log(curr,i);
return i+1;
})
console.log(abcd); // returns [undefined *7]
对我来说,创建这样的数组的更好方法是使用排列运算符和map()
let abcd = [...Array(7)].map((x, i) => i + 1)
console.log(abcd); // returns [undefined *7]