init 具有 5 个零元素的数组



你好,我想在 JS 中用 5 个零元素初始化数组。没有经典initiation var arr = [0, 0, 0, 0, 0]

我尝试一些变体:

var arr = new Array(5).map(() => 0);
var arr = new Array(5).map(function () {return 0;});
var arr = Array(5).map(function () {return 0;});

但是这个例子不起作用。

要么使用.fill

const arr = new Array(5).fill(0);
console.log(arr);

Array.from,它有一个内置的 map 函数,您可以作为第二个参数传递:

const arr = Array.from({ length: 5 }, () => 0);
console.log(arr);

参见 MDN:

map 按顺序为数组中的每个元素调用一次提供的回调函数,并从结果构造一个新数组。 回调仅对具有赋值(包括未定义(的数组索引调用。对于数组的缺失元素(即从未设置、已删除或从未赋值的索引(,不会调用它。

如上所述使用Array.from会为数组的每个元素分配未定义的值,而new Array则不会,这就是为什么您可以在Array.from之后map,但在调用 Array 构造函数之后不能

您需要在初始化中使用数组的方法填充。

例:

var arr = new Array(5).fill(0);

for 循环可以帮助你吗?

For(i=0; i<N; i++){
array[i]=value;
}

对于 0 的 5 长度数组,它变为

for(i=0; i<5; i++){
array[i]=0;
}

最新更新