【问题标题】:init Array with 5 zero elements [duplicate]具有 5 个零元素的初始化数组 [重复]
【发布时间】:2018-11-05 14:02:22
【问题描述】:

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

但是这个例子不起作用。

【问题讨论】:

    标签: javascript arrays lambda


    【解决方案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 按顺序为数组中的每个元素调用一次提供的回调函数,并根据结果构造一个新数组。回调仅针对具有赋值的数组索引调用,包括未定义的。数组的缺失元素(即从未设置、已删除或从未赋值的索引)不会调用它。

    如上所述使用Array.fromundefined 值分配给数组的每个元素,而new Array 没有,这就是为什么您可以在map 之后map 而不是在调用数组构造函数。

    【讨论】:

    【解决方案2】:

    你需要使用方法填充来初始化数组。

    示例:

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

    【讨论】:

    • 请不要重复回答。
    【解决方案3】:

    for 循环可以帮助您吗?

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

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

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

    【讨论】:

    • 请不要重复回答。
    • 当我开始写作时,没有答案。在智能手机应用上写代码并不简单
    猜你喜欢
    • 2015-11-11
    • 2012-09-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-17
    • 2016-08-08
    • 1970-01-01
    • 2016-12-17
    • 2017-05-30
    相关资源
    最近更新 更多