zoukankan      html  css  js  c++  java
  • 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);
  • 相关阅读:
    ecshop的详细安装步骤
    php+mysql 除了设置主键防止表单提交内容重复外的另一种方法
    strcmp
    map set区别
    ++i vs i++
    stl vector erase
    user initialization list vs constructor assignment
    default constructor,copy constructor,copy assignment
    memset
    strcpy vs memcpy
  • 原文地址:https://www.cnblogs.com/beileye888/p/7205837.html
Copyright © 2011-2022 走看看