数组去重方法

2017-08-21  本文已影响0人  lv_jing
var arr = [1,2,3,5,6,1,8,9,3,2,9,4];
    //方法1: 设一个开关
    function removeRepeat1(arr){
      var result = [];
      var flag = 1; //默认没有相同的
      for (var i = 0; i < arr.length; i ++,flag = 1){
        for (var j = 0; j < i; j ++){
          if(arr[i] === arr[j]) {
            flag = 0;
          }            
        }  
        flag ? result.push(arr[i]) : "";      
      }
      return result;
    }
    console.log( removeRepeat1(arr) );

    // 方法2: 加一个对象
    //    每次循环,判断对象obj中是否有arr[i]这一项,如果没有,就将arr[i]这一项放入obj中,并将arr[i]放入数组中
    function removeRepeat2(arr){
      var result = [];
      var obj = {};
      for (var i = 0; i < arr.length; i ++){
        if(!obj[arr[i]]) {
          obj[arr[i]] = arr[i];
          result.push(arr[i]);
        }        
      }
      return result;
    }
    console.log( removeRepeat2(arr) );

    //方法3:indexOf
    function removeRepeat2(arr){
      var result = [];
      for (var i = 0; i < arr.length; i ++){
        // 判断如果result数组中没有arr[i]这一项,则将arr[i]这一项放入数组中
        result.indexOf(arr[i]) === -1 ? result.push(arr[i]) : "";
      }
      return result;
    }
    console.log( removeRepeat2(arr) );
上一篇 下一篇

猜你喜欢

热点阅读