function insert(arr, item, index) { var newarr = arr.slice();
newarr.splice(index,0,item);
return newarr;
}
//利用slice+concat
function insert(arr, item, index) {
return arr.slice(0,index).concat(item,arr.slice(index));
}
//利用concat +splice
function insert(arr, item, index) {
var newArr=arr.concat();
newArr.splice(index,0,item);
return newArr;
}
//利用slice+splice
function insert(arr, item, index) {
var newArr=arr.slice(0);
newArr.splice(index,0,item);
return newArr;
}
//利用push.apply+splice
function insert(arr, item, index) {
var newArr=[];
[].push.apply(newArr, arr);
newArr.splice(index,0,item);
return newArr;
}
//普通的迭代拷贝
function insert(arr, item, index) {
var newArr=[];
for(var i=0;i<arr.length;i++){
newArr.push(arr[i]);
}
newArr.splice(index,0,item);
return newArr;
}
本题可使用splice方法,该方法可接收多个参数。第一个参数表示数组起始位置,第二个参数表示需要删除元素的个数,如果后面还有参数,则将随后的全部参数插入到第一个参数表示的起始位置。例如:arr.splice(5,2,"test1","test2");此句代码表示从arr数组的第5个元素开始,删除随后两个元素,并将“test1”和“test2”插入到第5个元素之后。
function insert(arr, item, index) { //复制数组 var a = arr.slice(0); a.splice(index, 0, item); return a; }