目录:
4.数组 arr 末尾添加元素
5.删除数组第一个元素
6.在数组 arr 的 index 处添加元素
4.添加元素
在数组 arr 末尾添加元素 item。不要直接修改数组 arr,结果返回新的数组。
/**
* 普通的迭代拷贝
* @param arr
* @param item
* @returns {Array}
*/
var append = function(arr, item) {
var length = arr.length,
newArr = [];
for (var i = 0; i < length; i++) {
newArr.push(arr[i]);
}
newArr.push(item);
return newArr;
};
/**
* 使用slice浅拷贝+push组合
* @param arr
* @param item
* @returns {Blob|ArrayBuffer|Array.<T>|string}
*/
var append2 = function(arr, item) {
var newArr = arr.slice(0); // slice(start, end)浅拷贝数组
newArr.push(item);
return newArr;
};
/**
* 使用concat将传入的数组或非数组值与原数组合并,组成一个新的数组并返回
* @param arr
* @param item
* @returns {Array.<T>|string}
*/
var append3 = function(arr, item) {
return arr.concat(item);
};
5.删除数组第一个元素
删除数组 arr 第一个元素。不要直接修改数组 arr,结果返回新的数组
输入: var arr=[1,2,3];
//利用slice
function curtail(arr) {
return arr.slice(1);
}
//利用filter
function curtail(arr) {
return arr.filter(function(v,i) {
return i!==0;
});//[2, 3]
}
//利用push.apply+shift
function curtail(arr) {
var newArr=[];
[].push.apply(newArr, arr);
newArr.shift();
return newArr;
}
//利用join+split+shift 注意!!!:数据类型会变成字符型
function curtail(arr) {
var newArr = arr.join().split(',');
newArr.shift();
return newArr;//["2", "3"]
}
//利用concat+shift
function curtail(arr) {
var newArr = arr.concat();
newArr.shift();
return newArr;
}
//普通的迭代拷贝
function curtail(arr) {
var newArr=[];
for(var i=1;i<arr.length;i++){
newArr.push(arr[i]);
}
return newArr;
}
6.添加元素
在数组 arr 的 index 处添加元素 item。不要直接修改数组 arr,结果返回新的数组。
//利用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;
}