javascript如何数组去重_有哪些高效方式

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

javascript如何数组去重_有哪些高效方式-第1张图片-佛山资讯网

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

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~