Javascript在数组的第n个索引处插入元素,从另一个数组插入元素

Javascript在数组的第n个索引处插入元素,从另一个数组插入元素,javascript,arrays,Javascript,Arrays,我有两个Javascript数组: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'] ['a', 'b', 'c'] 我需要每隔第一个数组的第4个或第n个索引将第二个数组的元素插入第一个数组,结果是: ['a', '1', '2', '3', '4', 'b', '5', '6', '7', '8', 'c', '9', '10', '11', '12'] n需要是一个参数,因此我可以在需要时将n移动到第5个位置或

我有两个Javascript数组:

['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12']
['a', 'b', 'c']
我需要每隔第一个数组的第4个或第n个索引将第二个数组的元素插入第一个数组,结果是:

['a', '1', '2', '3', '4', 'b', '5', '6', '7', '8', 'c', '9', '10', '11', '12']
n需要是一个参数,因此我可以在需要时将n移动到第5个位置或第3个位置


任何解决方案都值得赞赏。ES6的就太好了!提前感谢。

使用带有迭代器的
forEach
,如下所示:

让arr1=['1','2','3','4','5','6','7','8','9','10','11','12'];
设arr2=['a','b','c'];
设指数=0;
arr2.forEach(功能(v){
arr1.拼接(指数0,v);
指数+=5;
});

控制台日志(arr1)
您可以使用
forEach
使用
splice()
在较小的数组中迭代插入元素

让arr1=['1','2','3','4','5','6','7','8','9','10','11','12']
设arr2=['a','b','c']
函数插入器(arr1、arr2、n){
arr1=arr1.slice();
arr2.forEach((a,i)=>{
arr1.拼接(i*n+i,0,a);
})
返回arr1;
}
log(insertArr(arr1,arr2,4))
试试这个

b.forEach((itm, indx) => a.splice(Math.ceil(a.length/b.length)*indx, 0, itm));

使用
array.flatMap()
迭代第二个数组,使用
array.slice()
从第一个数组中获取相应的序列,并使用spread将其与当前元素组合。使用带有切片的
Array.concat()
添加剩余项(如果有)

const fn=(n,已添加,目标)=>
添加了.flatMap((el,i)=>[el,…target.slice(n*i,n*(i+1)))
.concat(目标切片(n*添加长度))
常量arr1=['1','2','3','4','5','6','7','8','9','10','11','12']
常数arr2=['a','b','c']
log(JSON.stringify(fn(3,arr2,arr1));
log(JSON.stringify(fn(4,arr2,arr1));

log(JSON.stringify(fn(5,arr2,arr1))是的,你会想在某种循环中使用数组拼接方法。你尝试了什么?嗨,穆罕默德,还没有。我已经看过了splice、concat、map和reduce示例,但我的技能水平不足以解决这个问题,我也找不到类似的问题。@jonas wilms这个问题与您所指的重复问题完全不同。请ping@Rajesh,您关闭了这个问题,实际上可以重新打开它。第一个测试用例{console.log(JSON.stringify(fn(3,arr2,arr1));}截断了arr1。