当前位置 : 主页 > 网络编程 > JavaScript >

ArrUnique.js

来源:互联网 收集:自由互联 发布时间:2021-06-30
ArrUnique.js //---------------------------------数组去重方法-----------------------------------------////1.使用indexOf()去重思路: //创建一个新的空数组,用来存放去重后的新数组. //利用for循环循环遍历需要
ArrUnique.js
//---------------------------------数组去重方法-----------------------------------------//

//1.使用indexOf()去重思路:
    //创建一个新的空数组,用来存放去重后的新数组.
    //利用for循环循环遍历需要去重的数组.
    //利用indexOf()方法查询遍历出的数组在新数组中是否出现,如果出现:则继续遍历数组,如未出现:
    //则利用push方法添加到新数组中.原数组循环遍历完成后,组建一个已经去除重复的新数组.
    var arr = [1,3,4,5,6,7,4,3,2,4,5,6,7,3,2];
    //js代码:
    function unique1(arr){
        var newArr = [];
        for (var i = 0; i < arr.length; i++) {
            if (newArr.indexOf(arr[i]) == -1 )newArr.push(arr[i]);
        }
        return newArr; 
    }
    //调用方法
    unique1(arr);

1.1 indexOf()去重第2个写法,
function unique3(arr){
    return arr.filter(function(val,index,a){
        return index === a.indexOf(val);
    })
}



2.原生比较法:
// 思路:两次便利数组,获取没重复的最右一值放入新数组。
//(检测到有重复值时终止当前循环同时进入顶层循环的下一轮判断)
 function unique2(array){  
     var r = [];  
     for(var i = 0, l = array.length; i < l; i++) {  
        for(var j = i + 1; j < l; j++)  
            if (array[i] === array[j]) j = ++i;  
            r.push(array[i]);   
        }   
        return r; 
    }
    //调用方法
    unique2(arr);
//注:以上是常用的两种数组去重方法,虽然第一种ie8以下不兼容,但是还是可以使用的
网友评论