1.splice
splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。该方法会改变原始数组。
语法:arrayObject.splice(index,howmany,item1,.....,itemX)
参数说明:
- index:操作数组的位置
- howmany:删除元素的数量,0为不删除
- item1,.....,itemX:插入的元素,可以不填
例如:
var arr=[1,2,3]; arr.splice(1,2);//删除第一个位置两个元素,arr=[1] var arr=[1,2,3]; arr.splice(1,2,99);//删除第一个位置两个元素,并添加99,arr=[1,99] var arr=[1,2,3]; arr.splice(1,0,99);//在第一个位置添加99 ,arr=[1,99,2,3]
利用splice方法给数组去重:
Array.prototype.distinct=function(){ for(var i=0;i<this.length;i++) { if(this.indexOf(this[i])!=i){ this.splice(i,1); i--; } } return this; } var arr=[1,1,2,3,4,5,6,2,3,4,5,6,7,1,2,3,4,5,6]; arr.distinct();//arr=[1, 2, 3, 4, 5, 6, 7]
2.slice
slice() 方法可从已有的数组中返回选定的元素。
语法:arrayObject.slice(start,end)
参数说明:
- start:开始取的位置,如果是负数则会从末尾开始算
- end:结束的位置,不填则会从开始位置取到末尾
例如:
var arr=[1,2,3,4,5,6,7]; console.log(arr.slice(2,5));//[3,4,5],注意arr不变 var arr=[1,2,3,4,5,6,7]; console.log(arr.slice(-2,-1));//[6] var arr=[1,2,3,4,5,6,7]; console.log(arr.slice(3));//[4, 5, 6, 7]
像jQuery中,利用slice方法给字符串转换为数组:
function toArray(str){ return Array.prototype.slice(str); }
slice还有个用法就是复制数组对象,如
var arr=[1,2,3]; var copies = arr.slice(0); arr.length=0;//arr数组删除所有元素 console.log(copies); console.log(arr);