【问题标题】:Initialise an array with same value, x times用相同的值初始化一个数组,x 次
【发布时间】:2017-11-05 14:58:15
【问题描述】:

如果我有:

let a = [1,3,4,5];

如何动态设置ba 的长度相同,每个条目都包含“

预期结果:

b = ["<","<","<","<"];

【问题讨论】:

    标签: javascript ecmascript-6 ecmascript-2016


    【解决方案1】:

    你可以使用Array#map:

    const a = [1,3,4,5];
    
    const b = a.map(() => "<");
    
    console.log(b);

    你可以使用Array#from:

    const a = [1,3,4,5];
    
    const b = Array.from(a, () => "<");
    
    console.log(b);

    或者你可以使用Array#fill:

    const a = [1,3,4,5];
    
    const b = new Array(a.length).fill("<");
    
    console.log(b);

    【讨论】:

    • 我觉得我的解决方案比较清晰,你觉得呢?我认为您的地图解决方案比数组解决方案要好得多。
    • 啊。我看到你也添加了一个 Array#fill 解决方案 :) 当你想复制原语时,Array#fill 很好。如果您将使用数组或对象,则所有数组项都将指向同一个数组/对象。在这种情况下,Array#from/#map 正在做同样的事情。我想我也会选择地图。
    【解决方案2】:

    这里有一个解决方案:

    Array(a.length).fill('<');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-18
      • 2021-12-17
      • 1970-01-01
      • 2016-01-24
      • 2020-09-29
      • 2019-06-22
      • 2019-06-25
      • 1970-01-01
      相关资源
      最近更新 更多