美文网首页
js几种数组去重方法

js几种数组去重方法

作者: zhangjianli | 来源:发表于2017-04-16 21:58 被阅读0次

    一、
    1.构建一个新的数组存放结果
    2.for循环中每次从原数组中取出一个元素,用这个元素循环与结果数组对比
    3.若结果数组中没有该元素,则存到结果数组中

     function unique(arr){
     var res = [arr[0]];
     for(var i = 1; i < arr.length; i++){
      var repeat = false;
      for(var j = 0; j < res.length; j++){
       if(arr[i] == res[j]){
        repeat = true;
        break;
       }
      }
      if(!repeat){
       res.push(arr[i]);
      }
     }
     return res;
    }
    

    二,
    1.创建一个新的数组存放结果
    2.创建一个空对象
    3.for循环时,每次取出一个元素与对象进行对比,如果这个元素不重复,则把它存放到结果数组中,同时把这个元素的内容作为对象的一个属性,并赋值为1,存入到第2步建立的对象中。

    function unique(arr){
            var rs =[];
            var obj={};
            for(var i=0;i<arr.length;i++){
                if (!obj[arr[i]]) {
                    obj[arr[i]]=1;
                    rs.push(arr[i]);
                }
            }
            return rs;
        }
    

    三,
    如果当前数组的第i项在当前数组中第一次出现的位置不是i,那么表示第i项是重复的,忽略掉。否则存入结果数组。

    function unique3(array){ 
    var n = [array[0]]; //结果数组 
    //从第二项开始遍历 
    for(var i = 1; i < array.length; i++) { 
    //如果当前数组的第i项在当前数组中第一次出现的位置不是i, 
    //那么表示第i项是重复的,忽略掉。否则存入结果数组 
    if (array.indexOf(array[i]) == i) n.push(array[i]); 
    } 
    return n; 
    }
    

    四,
    给传入数组排序,排序后相同值相邻,然后遍历时新数组只加入不与前一值重复的值。

    // 将相同的值相邻,然后遍历去除重复值 
    function unique4(array){ 
    array.sort(); 
    var re=[array[0]]; 
    for(var i = 1; i < array.length; i++){ 
    if( array[i] !== re[re.length-1]){ 
      re.push(array[i]); 
     } 
     } 
     return re; 
    } 
    

    相关文章

      网友评论

          本文标题:js几种数组去重方法

          本文链接:https://www.haomeiwen.com/subject/eehzattx.html