使用Set去重是JavaScript中最高效的方法,适用于基本数据类型;对于对象数组则可通过filter配合findIndex按属性去重。
JavaScript 实现数组去重有多种方法,根据数据类型和性能需求可以选择不同的方式。以下是几种常用且实用的方法。
ES6 提供了 Set 数据结构,它只存储唯一值,结合扩展运算符可以快速去重,适用于基本数据类型(如字符串、数字)。
const arr = [1, 2, 2, 3, 4, 4, 5];这种方法简洁高效,是目前最常用的去重方式。
通过遍历数组,利用 indexOf 返回第一个匹配项的索引,判断当前项是否为首次出现。
const arr = [1, 2, 2, 3, 4, 4, 5];
console.log(uniqueArr); // [1, 2, 3, 4, 5]
兼容性好,适合不支持 Set 的旧环境,但对大数据量性能较差。
利用 reduce 累积一个不含重复值的新数组。
const arr = [1, 2, 2, 3, 4, 4, 5];逻辑清晰,适合需要在累积过程中处理其他逻辑的场景。
如果数组元素是对象,不能直接用 Set 或 indexOf。可以通过属性值来去重,例如使用 filter 配合 findIndex。
const users = [这样可以根据指定字段(如 id)确保对象唯一。
基本上就这些常见方法。简单去重首选 Set,复杂条件可选 filter 或 reduce。根据实际数据结构选择合适方案即可。