【问题标题】:Lodash/underscore function to Initialize an array with default null values of a given lengthLodash/underscore 函数使用给定长度的默认空值初始化数组
【发布时间】:2016-06-17 02:44:54
【问题描述】:

lodash 中是否有一个函数可以使用给定长度的默认空值初始化数组?

当前使用的数组方法:

     var myArray = Array.apply(null, Array(myArrayLength)).map(function() { return null });

Lodash 函数尝试使用:

     var myArray = _.times(myArrayLength, null);

需要的数组:

  var myArray = [null, null, .......];

【问题讨论】:

    标签: javascript arrays underscore.js lodash


    【解决方案1】:

    这应该可以解决问题:

    _.times(arrayLength, _.constant(null));
    

    例如:

    _.times(5, _.constant(null));
    [null, null, null, null, null]
    

    【讨论】:

    • 如果我想填充现有数组呢?
    【解决方案2】:
    _.fill(Array(arrayLength), null)
    
    // exemple:
    _.fill(Array(5), null); // [ null, null, null, null, null ]
    

    编辑:

    我做了一些性能测试:https://jsperf.com/lodash-initialize-array-fill-vs-times

    • _.fill_.times
    • null_constant(null)

    【讨论】:

    • 这比创建一个 for 循环并将 x 次 null 推送到我的数组要快???
    【解决方案3】:

    我建议使用_.fill

    _.fill(Array(myArrayLength), null);`
    

    似乎比_.times快,至少在Chrome上是这样。

    在此处查看性能比较:https://jsperf.com/fill-vs-times/1

    【讨论】:

    • 重复答案。
    • 这比写一个循环和制作array.push还要快。只是好奇
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-17
    • 2015-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-19
    相关资源
    最近更新 更多