推荐使用[...new Set(arr)]去重,简洁高效,适用于字符串、数字等基本类型;含对象需用filter+indexOf或reduce+includes;大数据量推荐Set辅助的filter方案。

JavaScript 数组去重有多种方式,高效与否取决于数据规模、元素类型(是否含对象)、是否需保持顺序,以及浏览器兼容性要求。现代写法简洁且性能好,老环境则需兼顾兼容性。
用 Set 快速去重(推荐,适合基础类型)
Set 自动过滤重复值,配合扩展运算符或 Array.from 转回数组,代码最简、性能优秀,适用于字符串、数字等基本类型:
- const unique = [...new Set(arr)]
- const unique = Array.from(new Set(arr))
注意:Set 对象元素视为不同({a:1} 和 {a:1} 不去重),不适用于含对象的数组。
filter + indexOf(兼容老浏览器,保持顺序)
利用 indexOf 返回首次出现索引,只保留“第一次出现的位置”,天然保序,兼容 IE9+:
立即学习“Java免费学习笔记(深入)”;
- const unique = arr.filter((item, i) => arr.indexOf(item) === i)
缺点是时间复杂度 O(n²),大数据量时略慢;但逻辑清晰,适合中小数组或需兼容旧环境的场景。
标签: javascript java 大数据 浏览器 red
还木有评论哦,快来抢沙发吧~