我有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)
有方法吗?
你可以用 Array#splice
该
splice()方法通过删除现有元素和/或添加新元素来更改数组的内容.
该
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)
一种方法是使用splice方法.str.splice(index, 0, item);将插入item到str指定的索引处(首先删除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)