JavaScript中的数组去重

const arr=[1,2,3,3,2]
方法一:Array.filter() + indexOf
arr.filter((item,index) => {
return arr.indexOf(item) === index;
})

方法二:使用 for...of + includes()
let result = []
for (let i of arr) {
!result.includes(i) && result.push(i)
}
return result

方法三:双重 for 循环
for (let i=0; i<arr.length; i++) {
for (let j=i+1; j<arr.length; j++) {
if (arr[i] == arr[j]) {
arr.splice(j, 1);
// splice 会改变数组长度,所以要将数组长度 len 和下标 j 减一
arr.length--;
j--;
}
}
}
return arr

方法四:Array.sort()
首先使用 sort() 将数组进行排序
然后比较相邻元素是否相等,从而排除重复项。
arr.sort((a,b)=> a - b;)
let result = [arr[0]]
for (let i=1; i<arr.length; i++) {
arr[i] !== arr[i-1] && result.push(arr[i])
}
return result

方法五:for...of + Object
利用对象的属性不能相同的特点进行去重
let result = []
let obj = {}
for (let i of arr) {
if (!obj[i]) {
result.push(i)
obj[i] = 1
}
}
return result

方法六:ES6的new Set()
return [...new Set(arr)]
方法七:reduce方法
arr.reduce((pre, cur) => {
if (!pre.includes(cur)) {
return pre.concat(cur);
} else {
return pre;
}
}, []);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容