我怀疑我问这个问题的原因是我的词汇量缺少一个更好的术语我正在寻找的功能,因此我没有在谷歌和lodash API文档中找到它
underscore
和lodash
提供一个专用函数,通过简单地将x
的(返回)值推送到空n
次x
次来生成数组1}}是值还是生成器函数?
我可以想到这样一个函数的大量用例,即使使用简单的 for
循环轻松复制功能,实用程序库提供的函数如{{1通常是{}和underscore
,它们的目的通常是提供最佳实现。
原来lodash
几乎提供了我正在寻找的功能;如官方API文档中所述:
_.times
但这显然不允许我传递静态值。
答案 0 :(得分:2)
不是专用函数,但也许这就足够了?:
.map( .range(n),x)
修改:正如Pointy建议的那样,如果_.times()
是生成器,x
会执行您所描述的内容:
_.times(n, x)
_.times
会忽略x
如果它不是某个功能,那么您可能需要使用mixin进行使用:
_.mixin({
generate: function (length, x) {
return _.times(length, _.isFunction(x) ? x : _.constant(x));
}
});