数组去重(javascript实现)

方法一:

let arr = [1,1,4,2,65,43,8,8];
function deRepeat(arr) {
  let set = new Set(arr);
  return [...set];
}
console.log(deRepeat(arr));

方法二:

let arr = [1,1,4,2,65,43,65,67,8,8];
function deRepeat(arr) {
  let newArr = [];//存放最后结果的数组
  newArr.push(arr[0]);

  arr.sort();
  //console.log(arr);//[1,1,2,4,43,65,65,67,8,8]
  preNum = arr[0];
  for(let i=1; i<arr.length; i++) {
    if(preNum !== arr[i]) {
      newArr.push(arr[i]);
    }
    preNum = arr[i];
  }
  return newArr;
}
console.log(deRepeat(arr));

方法三:

let arr = [1,1,4,2,65,43,65,67,8,8];
function deRepeat(arr) {
  // 1、先排序, 不一定回调函数一定要这样写,可以直接arr.sort()
  arr.sort(function(a, b) {
    if(a > b) {
      return 1;
    }else {
      return -1;
    }
  });
  for (var i = 0; i < arr.length - 1; i++) {
    if (arr[i] == arr[i + 1]) {
      arr.splice(i + 1, 1);
    }
  }
  return arr;
}
console.log(deRepeat(arr));

方法四:

let arr = [1,1,4,2,65,43,65,67,8,8];
function deRepeat(arr) {
  //访问一个对象的属性,如果有这个属性,得到的是具体的属性值,如果没有这个属性,得到的是undefined
  //现在把数组中的元素看成是对象的属性,如果有这个属性,得到具体的值,如果没有,得到undefined
  let obj = {};
  let newArr = [];
  for (let i = 0; i < arr.length; i++) {
    if (obj[arr[i]] == undefined) {
      obj[arr[i]] = 1;
      newArr.push(arr[i]);
    }
  }
  return newArr;
}
console.log(deRepeat(arr));

方法五:

let arr = [1,1,4,2,65,43,65,67,8,8];
function deRepeat(arr) {
   let newArr = [];
   for (let i = 0; i < arr.length; i++) {
     if (newArr.indexOf(arr[i]) === -1) {
       newArr.push(arr[i]);
     }
   }
   return newArr;
}
console.log(deRepeat(arr));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值