如何在其他数组中粘贴数组?

Ser*_*hiy 4 javascript arrays

我有2个数组:

var str = ['a','b','c','d'];
var num = [1,2,3];
Run Code Online (Sandbox Code Playgroud)

我想要一个像这样的数组:

var strNum= ['a','b',1,2,3,'c','d'];
Run Code Online (Sandbox Code Playgroud)

有方法吗?

Nin*_*olz 7

你可以用 Array#splice

splice()方法通过删除现有元素和/或添加新元素来更改数组的内容.

Function.apply

apply()方法调用具有给定this值的函数,并arguments作为数组(或类数组对象)提供.

var str = ['a', 'b', 'c', 'd'],
    num = [1, 2, 3],
    strNum = str.slice();

Array.prototype.splice.apply(strNum, [2, 0].concat(num));
console.log(strNum);
Run Code Online (Sandbox Code Playgroud)

或者您可以使用ES6的扩展语法...

扩展语法允许在需要多个参数(用于函数调用)或多个元素(用于数组文字)或多个变量(用于解构赋值)的位置扩展表达式.

var str = ['a', 'b', 'c', 'd'],
    num = [1, 2, 3],
    strNum = str.slice();

strNum.splice(2, 0, ...num);
console.log(strNum);
Run Code Online (Sandbox Code Playgroud)


Mih*_*nut 6

一种方法是使用splice方法.str.splice(index, 0, item);将插入itemstr指定的索引处(首先删除0个项目,即它只是一个插入).

splice()方法通过删除现有元素和/或添加新元素来更改数组的内容.

在这里查看更多:Array.splice

请试试这个:

var str = ['a','b','c','d'];
var num = [1,2,3];
for(i in num.reverse()){
  str.splice(2, 0, num[i]);
}
console.log(str);
Run Code Online (Sandbox Code Playgroud)

这是另一种方法:

var str = ['a','b','c','d'];
var num = [1,2,3];
str=str.slice(0,2).concat(num).concat(str.slice(-2));
console.log(str);
Run Code Online (Sandbox Code Playgroud)