数组去重的方式

1. set() 去重

let duplicateArray = [1, 2, 3, 2, 9, 2, 3, 4]
let deduplicatedArray = [...new Set(duplicateArray)]
console.log(deduplicatedArray)

new Set() 会返回一个 Set 对象,它允许你存储任何类型的唯一值,无论是原始值或者是对象引用。Set 对象是值的集合,你可以按照插入的顺序迭代它的元素。 Set 中的元素只会出现一次,即 Set 中的元素是唯一的。

语法:new Set([iterable]);

参数:iterable:如果传递一个可迭代对象,它的所有元素将不重复地被添加到新的 Set 中。如果不指定此参数或其值为 null,则新的 Set 为空。

返回值:一个新的 Set 对象。

2. filter() 结合 indexOf() 去重

let duplicateArray = [1, 2, 3, 4, 4, 3, 2, 1] 
let deduplicatedArray = duplicateArray.filter((item, index, array) => {
    return array.indexOf(item) === index
})
console.log(deduplicatedArray)
/*
    array.indexOf(item) 获取当前元素在原数组中的索引
*/  
/* 
    array.indexOf(item) === index 
    判断当前元素在原数组中的索引是否等于当前元素的索引,如果等于说明当前元素是第一次出现;
    否则是重复出现,不符合条件,被过滤掉,不会出现在 deduplicatedArray 中,达到了数组去重的目的。 
*/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值