JS进阶-去重

本文介绍了JavaScript中几种常见的数组去重方法,包括排序后移除重复项、双重for循环配合splice、map和Array.from、Set以及filter函数的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 排序后去重

function repeatReduce(array) {
      sorArray = array.sort()
      for (i = 1; i < array.length; i++) {
        if (array[i - 1] == array[i]) {
          array.splice(i, 1)
        }
      }
      console.log(array)
    }

双重for循环配合splie去重

//先定义一个数组
var arr=[1,2,2,3,4,4,5]
//双重for循环
for(i = 0;i < arr.length; i++){
  for(j = i+1;j < arr.length; j++){ 
//如果数组中有两个数相等,这里用三位运算符
    if(arr[i] === arr[j]){ 
//在第j个元素开始删除,删除1个元素。splice方法,还可以对多个对象中的某个或某几个对象删除
      arr.splice(j,1);
      j--;
    }
  }
}
console.log(arr)

map循环配合Array.from去重

const arr = [1, 2, 2, 3, 4, 4, 5];
const newArr = Array.from(new Map(arr.map(item => [item, item])).values());
console.log(newArr); // [1, 2, 3, 4, 5]

这段代码的原理是,先使用map方法将数组元素映射为键值对的数组。然后使用Map构造函数将键值对数组转换为Map对象,其中键和值均为数组的元素。由于Map对象中键是唯一的,这样就自动去除了数组中的重复项。最后,通过Array.from()方法将去重后的Map对象的值转换为新的数组。

set()去重

let arr = [1, 2, 2, 3, 4, 4, 5];
let newArr = [...new Set(arr)];
console.log(newArr);  // [1, 2, 3, 4, 5]

这里使用了ES6中的Set数据结构来创建一个去重后的新数组newArr

filter()去重

let arr = [1, 2, 2, 3, 4, 4, 5];
let newArr = arr.filter((value, index, self) => {
  return self.indexOf(value) === index;
});
console.log(newArr);  // [1, 2, 3, 4, 5]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值