如果元素本身在另一个数组中,如何在元素的特定索引处插入元素?

时间:2019-03-10 19:58:53

标签: javascript

假设我有两个数组:

A = [1、2、3、4]

B = [10,20,30]。

并且我想从索引1开始在数组A中插入B的元素。因此,我的最终数组看起来像

[1、10、20、30、2、3、4]

我尝试用splice来做。但是拼接功能需要您提供元素列表,而不是数组。

有什么办法可以实现?

3 个答案:

答案 0 :(得分:2)

您可以传播 Bsplice的参数列表中:

const A = [1, 2, 3, 4]
const B = [10, 20, 30]
A.splice(1, 0, ...B); // equivalent to `.splice(1, 0, 10, 20 30)`
console.log(A);

答案 1 :(得分:1)

您也可以使用Array.slice()spread syntax进行此操作。请注意,Array.splice()对数组进行了突变:

  

splice()方法通过删除或替换现有元素和/或在适当位置添加新元素来更改数组的内容。

但是,如果您要更改数组A,那么splice()很好,如其他答案所示。

const A = [1, 2, 3, 4];
const B = [10, 20, 30];
const C = [...A.slice(0,1), ...B, ...A.slice(1)];
console.log(C);
.as-console {background-color:black !important; color:lime;}
.as-console-wrapper {max-height:100% !important; top:0;}

答案 2 :(得分:0)

您可以通过Function#apply方法或ES6扩展语法使用拼接。

var A = [1, 2, 3, 4],

B = [10, 20, 30];

[].splice.apply(A,[1,0].concat(B));

console.log(A)

var A = [1, 2, 3, 4],

  B = [10, 20, 30];

A.splice(1, 0, ...B)

console.log(A)