数组去重,封装数组去重

1. 相对于数组本身进行去重

var arr = [15,35,27,15,29,31,35,15];
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);   //  [15, 35, 27, 29, 31]

封装数组去重

    var arr = [15,35,27,15,29,31,35,15];
    function noRepeat(a) {
        for (var i = 0; i < a.length; i++) {
            for (var j = i + 1; j < a.length; j++) {
                if (a[i] == a[j]) {
                a.splice(j, 1);
                j--;
                }
            }
        }

    }
    noRepeat(arr);
    console.log(arr);

2. 不是操作数组本身的

var arr = [15,35,27,15,29,31,35,15];
var b = [];
for(var j = 0; j < arr.length; j++){
   if(b.indexOf(arr[j]) == -1){
       b.push(arr[j]);
   }
}
console.log(b) //  [15, 35, 27, 29, 31]

封装数组去重

var arr2 = [5, 5, 5, 94, 1, 8, 120, 8, 1, 52];
// 不是操作数组本身的去重 
  function noRepeat1(arr) {
    // 声明一个空数组 用来装载新的不重复的数组
    var aaa = [];
    for (var k = 0; k < arr.length; k++) {
      // arr[k]
      if (aaa.indexOf(arr[k]) == -1) {
        aaa.push(arr[k]);
      }
    }
    // aaa 在for循环之后是不重复的新数组

    // 使用return是返回新的数组
    return aaa;
  }

  noRepeat1(arr2)

  console.log(noRepeat1(arr2))
发布了75 篇原创文章 · 获赞 7 · 访问量 6902

猜你喜欢

转载自blog.csdn.net/HelloWord176/article/details/103464697