web-dev-qa-db-ja.com

与えられた長さのデフォルトのnull値で配列を初期化するLodash / underscore関数

Lodashに、指定された長さのデフォルトのnull値で配列を初期化する関数はありますか?

現在使用している配列メソッド:

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

使用しようとしているロダッシュ関数:

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

必要な配列:

  var myArray = [null, null, .......];
12
Rk R Bairi

それはトリックをするべきです:

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

例えば:

_.times(5, _.constant(null));
[null, null, null, null, null]
24
Julien Leray
__.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)より高速です
10
Boris

_.fillの使用をお勧めします

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

それは_.timesよりも高速であるようです。少なくともChrome上ではそうです。

ここでパフォーマンスの比較を参照してください: https://jsperf.com/fill-vs-times/1

3
Shan