Array.from方法返回一个具有未定义值而非实数的数组



我写了以下代码:

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]

最新更新