lodash/underscore.js函数来创建由x的n个副本组成的数组
lodash / underscore.js function to create array consisting of n copies of x
我怀疑我问这个问题的原因是我的词汇表中缺少一个更好的术语来描述我要查找的函数,因此我无法在谷歌和lodash API文档中找到它
underscore
和lodash
是否提供了一个专用函数,通过简单地将x
的(返回)值推到空数组n
次来生成数组,其中x
是值或生成器函数?
我可以想到这样一个函数的许多用例,尽管使用简单的for
循环可以很容易地复制该功能,但underscore
和lodash
等实用程序库提供的函数通常是这样的,它们的目的通常是提供最佳实现
事实证明_.times
几乎提供了我想要的功能;如API官方文件所述:
_.times(n, [iteratee=_.identity], [thisArg])
// Invokes the iteratee function n times, returning an array of the results of each invocation. The iteratee is bound to thisArg and invoked with one argument; (index).
不过,这显然不允许我传递静态值。
不是一个专用函数,但也许这就足够了?:
.map(.range(n),x)
编辑:正如Pointy所建议的,如果x
是生成器,_.times()
将执行您所描述的操作:
_.times(n, x)
如果_.times
不是函数,它将忽略x
,因此您可能需要使用一个mixin:
_.mixin({
generate: function (length, x) {
return _.times(length, _.isFunction(x) ? x : _.constant(x));
}
});
相关文章:
- lodash/underscore.js函数来创建由x的n个副本组成的数组
- 使用对象的副本创建数组(Javascript)
- Javascript-关联数组副本
- 如何在排序前保存数组的副本
- 如何创建挖空可观察数组/对象的深层副本
- 将字段添加到新的 JavaScript 数组副本
- 数组 JavaScript 的副本
- 使用对象对数组进行切片,并获取包含对象副本的数组
- 如何在数组末尾添加对象的副本
- 保持原始数组不变,更改函数中的本地副本
- 在.splice()之后重置角度函数中数组的副本
- 创建数组的副本并操作原始数组
- 使用迭代器提取整个数组的值(克隆数组的副本)
- 如何避免在数组内迭代有序的字母序列时将副本计数为对?
- 如何创建数组的副本
- 在JavaScript中创建一个反向数组的独立副本
- 从数组的副本中删除项,而不从原始数组中删除项
- 如何替换数组元素而不修改原始数组并创建副本
- 如何在Vue.js中解绑定数组副本
- 为什么在JavaScript中更改数组会影响数组的副本?