具有5个零元素的init数组

时间:2018-05-26 10:09:30

标签: javascript arrays lambda

您好我想在JS中使用5个零元素初始化Array。没有经典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;});

但这个例子不起作用。

3 个答案:

答案 0 :(得分:1)

使用.fill

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

Array.from,它有一个内置的地图功能,你可以作为第二个参数传递:

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

请参阅MDN

  

map按顺序为数组中的每个元素调用一次提供的回调函数,并从结果中构造一个新数组。仅对已分配值的数组的索引(包括undefined)调用回调。它不会被调用缺少数组的元素(即,从未设置过的索引,已删除的索引或从未赋值的索引)。

如上所述使用Array.from会将未定义的值分配给数组的每个元素,而new Array则不会,这就是map Array.from之后的原因location.search 1}}但不是在调用Array构造函数之后。

答案 1 :(得分:0)

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

示例:

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

答案 2 :(得分:0)

愿for循环可以帮到你吗?

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

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

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