**
基础知识
**
1.splice()从数组中添加/删除项目
arr.splice(2,0,"William")
splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。
注释:该方法会改变原始数组。
2.slice() 可从已有的数组中返回选定的元素
var newArr = arr.slice(0); // slice(start, end)浅拷贝数组
3.pop() 删除最后一个元素
pop() 方法用于删除并返回数组的最后一个元素
pop() 方法将删除 arrayObject 的最后一个元素,把数组长度减 1,并且返回它删除的元素的值。如果数组已经为空,则 pop() 不改变数组,并返回 undefined 值。
4.push()在末尾添加元素
push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。
5.shift()删除第一个元素
删除数组第一个元素
6.filter() 过滤数组元素
filter也是一个常用的操作,它用于把Array的某些元素过滤掉,然后返回剩下的元素。
和map()类似,Array的filter()也接收一个函数。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是true还是false决定保留还是丢弃该元素。
7.conact()
concat() 方法用于连接两个或多个数组。
该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
语法
arrayObject.concat(arrayX,arrayX,…,arrayX)
例题
6:删除数组 arr 最后一个元素。不要直接修改数组 arr,结果返回新的数组
//利用slice
function truncate(arr) {
return arr.slice(0,-1);
}
//利用filter
function truncate(arr) {
return arr.filter(function(ele.index,arr) {
return index!==arr.length-1;
});
}
//利用push.apply+pop
function truncate(arr) {
var newArr=[];
[].push.apply(newArr, arr);
newArr.pop();
return newArr;
}
//利用join+split+pop 注意!!!:数据类型会变成字符型
function truncate(arr) {
var newArr = arr.join().split(',');
newArr.pop();
return newArr;
}
//利用concat+pop
function truncate(arr) {
var newArr = arr.concat();
newArr.pop();
return newArr;
}
//普通的迭代拷贝
function truncate(arr, item) {
var newArr=[];
for(var i=0;i<arr.length-1;i++){
newArr.push(arr[i]);
}
return newArr;
}