Underscore: 数组函数:重复 val x 次

创建于 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

最有用的评论

而不是另一种方法,我们可以直接修改_.times返回每个callback调用的结果,就像 Lo-Dash 那样

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

所有4条评论

+1 表示数组重复函数。 我不会为此修改_.range ,因为它专用于数字范围。

而不是另一种方法,我们可以直接修改_.times返回每个callback调用的结果,就像 Lo-Dash 那样

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

+1 @jdalton。

对我来说听起来不错 - 去吧。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

clouddueling picture clouddueling  ·  3评论

chikamichi picture chikamichi  ·  8评论

jdalton picture jdalton  ·  4评论

danilopolani picture danilopolani  ·  5评论

zackschuster picture zackschuster  ·  5评论