Underscore: 配列関数:valx回繰り返す

作成日 2012年11月21日  ·  4コメント  ·  ソース: jashkenas/underscore

提案された実装:

_.repeat("0",10)
// => ["0","0",... 10 times]

または、次のように_.range関数を変更します。

_.range(0,0,10), instead of outputting [] outputs the above.

ユースケースは次のとおりです。

var values = ["A","B","C"];
_.object(values)
// => {"A":undefined,"B":undefined,"C":undefined} // wonderful, as expected

しかし、キーと値のペアのすべての値を同じ値に初期化する場合はどうなりますか?
これは別のオプションである可能性がありますが、機能しません。

_.object(values,"0") // provide scalar instead of array
// => {"A":undefined,"B":undefined,"C":undefined} // same as before

これは、_repeatが存在する場合に機能します。

_.object(values,_.repeat("0",values.length))
// => {"A":"0","B":"0","C":"0"} 
change

最も参考になるコメント

別のメソッドの代わりに、 Lo-Dashのように_.timesを変更して、各callback呼び出しの結果できます。

var zeros = _.times(10, function() { return 0; });
// => [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

全てのコメント4件

配列反復関数の場合は+1。 _.rangeは数値範囲専用なので、変更しません。

別のメソッドの代わりに、 Lo-Dashのように_.timesを変更して、各callback呼び出しの結果できます。

var zeros = _.times(10, function() { return 0; });
// => [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

+ 1 @ jdalton。

私には良さそうです-それのために行きなさい。

このページは役に立ちましたか?
0 / 5 - 0 評価