javascript怎么把两个数组交叉合并?

javascript怎么把两个数组交叉合并?
比如,有两个数组,第一个数组有12个元素,第二个数组有3个元素:

array_foo=['1','2','3','4','5','6','7','8','9','10','11','12'];
array_bar=['a','b','c'];

我想把第二个数组的a元素插入到第一个数组的4后面,b元素插入到第一个数组的8后面,c元素插入到第一个数组的12后面,即得到的结果如下:

array_result=['1','2','3','4','a','5','6','7','8','b','9','10','11','12','c'];

应该怎么做呢?

阅读 9.9k
2 个回答

@AnthonyYY
楼上的slice可以进一步优化:

array_bar.forEach(function (item, index) {
  array_foo.splice(4 * (index + 1) + index, 0, item);
});

console.log(array_bar);

splice即可。

根据@原罪恶的提示,将原来的版本

array_bar.forEach((item, index) => {
    let array_foo_first = array_foo.slice(0, 4 * (index + 1) + index);
    let array_foo_last = array_foo.slice(4 * (index + 1) + index);
    array_foo = [
        ...array_foo_first,
        item,
        ...array_foo_last
    ]
});

改为:

array_bar.forEach((item, index) => {
    return array_foo.splice(4 * (index + 1) + index, 0, item);
});

感谢@原罪的提示,作者可以采纳他的答案

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题