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 中,达到了数组去重的目的。
*/