我想根据提供的长度将重复值插入数组:
var a = ['bar', 'google', 'mod'];
var b = [];
var dataLength = 4;
输出应类似于:var a = ['bar', 'bar','bar','bar', 'google', 'google', 'google', 'google', 'mod', 'mod','mod', 'mod'];
我尝试过:
var dataLength = 4;
var a = ['bar', 'google', 'mod'];
var b = new Array(dataLength);
var c = [];
for (let i = 0; i < a.length; i++) {
c.push((b.fill(a[i]).toString()))
}
它可以工作,但不确定这是否是一个好方法。
答案 0 :(得分:3)
尝试一下:
const a = ["barclays", "google", "vod"];
const result = (num) => a.reduce((acc, ele) => acc.concat(Array(num).fill(ele)), []);
console.log(result(10))
答案 1 :(得分:2)
var a = ['barclays', 'google', 'vod'];
var b = [];
var dataLength = 4;
// Loop every element of a
for (let i = 0; i < a.length; i++) {
// Loop 4 times and push current element
for (let j = 0; j < dataLength; j++) {
b.push(a[i])
}
}
console.log(b)
答案 2 :(得分:1)
添加嵌套的for循环,遍历您的数据长度并将元素推入数组。
{1: 2, 2: 3, 3: 4, 4: 5}
答案 3 :(得分:1)
我们最新的Array方法中的两个,flatMap()和fill()非常适合:
.flatMap()
将进行映射并将返回的数组合并为一个数组。
.from()
可以创建一个特定长度的新数组。
.fill()
用特定值填充数组。
因此,所有这3个组合在一起,我们得到了这个小内衬:
var a = ['barclays', 'google', 'vod'];
var length = 4;
var b = a.flatMap( word => Array.from({ length }).fill( word ));
console.log( b );
答案 4 :(得分:1)
一种相当简单的技术就是将flatMap
与Array.prototype.fill
一起使用:
const repeatN = (n, arr) => arr .flatMap (a => Array (n) .fill (a) )
console .log (
repeatN( 4, ['barclays', 'google', 'vod'] )
)
如果您的环境不是support flatMap
,则填充起来并不难,或者您可以使用它来代替:
const repeatN = (n, arr) =>
arr.map(a => Array (n) .fill (a)) .reduce ( (a, b) => a .concat (b) )
答案 5 :(得分:0)
path.resolve(...)
类似这样的东西,除了在我的例子中没有排序。