为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

小唯快跑啊 2019-03-13 16:19:43
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'];应该怎么做呢?
查看完整描述

2 回答

?
守着一只汪

TA贡献1872条经验 获得超3个赞

根据楼下的提示,将原来的版本


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);

});

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


查看完整回答
反对 回复 2019-04-04
?
繁花不似锦

TA贡献1851条经验 获得超4个赞

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


array_bar.forEach(function (item, index) {

  array_foo.splice(4 * (index + 1) + index, 0, item);

});


console.log(array_bar);

用splice即可。


查看完整回答
反对 回复 2019-04-04
  • 2 回答
  • 0 关注
  • 1161 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信