鍍金池/ 問答/HTML/ javascript怎么把兩個數(shù)組交叉合并?

javascript怎么把兩個數(shù)組交叉合并?

javascript怎么把兩個數(shù)組交叉合并?
比如,有兩個數(shù)組,第一個數(shù)組有12個元素,第二個數(shù)組有3個元素:

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

我想把第二個數(shù)組的a元素插入到第一個數(shù)組的4后面,b元素插入到第一個數(shù)組的8后面,c元素插入到第一個數(shù)組的12后面,即得到的結(jié)果如下:

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

應(yīng)該怎么做呢?

回答
編輯回答
玄鳥

@AnthonyYY
樓上的slice可以進一步優(yōu)化:

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

console.log(array_bar);

splice即可。

2018年7月6日 12:05
編輯回答
蝶戀花

根據(jù)@原罪惡的提示,將原來的版本

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

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

2017年3月11日 19:57