使用array.prototype.fill而不是array.prototype.push

时间:2016-10-05 15:54:39

标签: javascript arrays

我正在尝试使用以下原型来fill一个整数为1-100的空数组。根据MDN的文档:

array.prototype.fill(value, [optional start & end index])

如果我的理解是正确的,如果我打电话给value = 1,那么如果我说:

[5].fill(1);我将留下一个数组,其中1个坐在阵列的所有5个索引点上。有没有办法使用.fill()来说value = 1...100?我开始认为运行for循环到push值1 - 100可能是唯一的方法,但我想我会看看这种方法是否有效。

2 个答案:

答案 0 :(得分:1)

fill方法,不会将函数或迭代器作为参数来更改每次迭代的静态值。

尝试这种方法

    var N = 100;
    var arr = Array.apply(null, {length: N+1}).map(Number.call, Number);
    arr.splice(0,1); 

console.log(arr);

最后

splice删除数组中0的第一项。

如果您不想splice

        var N = 100;
        var arr = Array.apply(null, {length:  N}).map(Number.call, function(item, index){ return item + 1 });

    console.log(arr);

提到了一些其他好的方法in this answer来动态填充值。

答案 1 :(得分:0)

  

fill()方法使用 static 值将数组的所有元素从起始索引填充到结束索引。

因此,无法使用fill()方法增加此值。