你好,我想在 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;
}