建议实现:
_.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"}
+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。
对我来说听起来不错 - 去吧。
最有用的评论
而不是另一种方法,我们可以直接修改
_.times
来返回每个callback
调用的结果,就像 Lo-Dash 那样: