假设我有两个数组:
A = [1、2、3、4]
B = [10,20,30]。
并且我想从索引1开始在数组A中插入B的元素。因此,我的最终数组看起来像
[1、10、20、30、2、3、4]
我尝试用splice
来做。但是拼接功能需要您提供元素列表,而不是数组。
有什么办法可以实现?
答案 0 :(得分:2)
您可以传播 B
到splice
的参数列表中:
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)