JS中数组slice、splice用法总结

1.splice
splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。该方法会改变原始数组。
语法:arrayObject.splice(index,howmany,item1,.....,itemX)
参数说明

  1. index:操作数组的位置
  2. howmany:删除元素的数量,0为不删除
  3. 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)
参数说明

  1. start:开始取的位置,如果是负数则会从末尾开始算
  2. 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);
原文地址:https://www.cnblogs.com/beileye888/p/7205837.html