splice方法以及如何实现数组去重

今天来说一下splice方法,当然也属于数组中的方法。关于splice方法,先说一下它的定义:splice()将删除从start开始(包括start所指的元素在内)的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的元素。位于插入或删除的元素之后的数组元素都会被移动,以保持它们与数组其他元素的连续性。注意,虽然spllce()方法与slice()方法名字相似,但作用不同,方法splice()直接修改数组。它返回的内容是:如果从array中删除了元素,返回的是含有被删除的元素的数组。但是要注意,由于存在—个bug,因此在JavaScriptl.2的Netscape实现中,返回的并不总是数组。

splice( start , deleteCoun t, value,... ),这个方法有三个参数,分别代表:

start:开始插入和(或)删除的数组元素的下标。

delectCount:从start开始,包括start所指的元素在内要删除的元素个数。这个参数是可选的,如果没有指定它,splice()将删除从start开始到原数组结尾的所有元素。

value , ...   :要插人数组的零个或多个值,从start所指的下标处开始插入。

来举例说明:

window.onload=function(){
       var arr = [1,3,4,5,3,4];
        //删除作用
        arr.splice(0,2);
        console.log(arr); //[4,5,3,4],返回的是1,3
     
    }
window.onload=function(){
       var arr = [1,3,4,5,3,4];
        //替换作用
        arr.splice(1,2,'aaa');
        console.log(arr); //[1,'aaa',5,3,4],返回的是3,4

    }
window.onload=function(){
       var arr = [1,3,4,5,3,4,8,9,8];
        //添加
        arr.splice(3,0,'aaa');
        console.log(arr); //  [1, 3, 4, "aaa", 5, 3, 4],返回的是[ ]
    }

接下来用splice实现数组去重实例:

window.onload=function(){
       var arr = [1,3,4,5,3,4,8,9,8,4];

        for(var i=0;i<arr.length;i++){
            for(var j=i+1;j<arr.length;j++){
                if(arr[i]==arr[j]){
                    arr.splice(j,1);
                    j--
                }
            }
        }
       console.log(arr) //[1,3,4,5,8,9]
}

当然数组去重的方法有很多种,这也是通过将数组里的内容一一比较,相等的用splice方法将其去除,直到去除干净。也就是通过for循环,来找出相同的然后去除。方法有很多种,都可以试试,今天就写到这里,个人愚见,希望对大家有帮助!

原文地址:https://www.cnblogs.com/web001/p/8298978.html