JavaScript小技巧:数组去重的几种优雅写法

简介: JavaScript小技巧:数组去重的几种优雅写法

JavaScript小技巧:数组去重的几种优雅写法

在日常开发中,数组去重是经常遇到的需求。除了传统的for循环加indexOf,ES6提供了更简洁的解法。

1. 最简洁:Set + 扩展运算符

const unique = arr => [...new Set(arr)];
// 示例:[1,2,2,3] => [1,2,3]

一行代码搞定,性能优异,适合多数场景。

2. 兼容对象:filter + findIndex

当数组包含对象时,Set无法直接去重(对象引用不同):

const uniqueObj = arr => 
  arr.filter((item, index, self) => 
    self.findIndex(t => t.id === item.id) === index
  );

id属性去重,灵活可控。

3. 性能优化:reduce + Map

对于大型数组,Map的查找效率更高:

const uniqueByMap = arr => 
  [...arr.reduce((map, item) => 
    map.set(item.id, item), new Map()).values()];

4. 实用技巧:过滤假值

const clean = arr => arr.filter(Boolean);
// [0, 1, false, 2, '', 3] => [1,2,3]

filter(Boolean)会移除所有假值(0, false, null, undefined, '')。

总结

  • 简单类型用Set
  • 对象数组根据业务选择合适的比较字段
  • 追求性能考虑Map

掌握这些技巧,代码质量立竿见影。

目录
相关文章
|
1月前
|
Java 程序员 API
告别繁琐:五个提升效率的Java编码技巧
告别繁琐:五个提升效率的Java编码技巧
375 139
|
1月前
|
JavaScript
JS小技巧:使用可选链操作符(?.)优雅访问深层对象
JS小技巧:使用可选链操作符(?.)优雅访问深层对象
368 137
|
1月前
|
JavaScript 前端开发
提升代码质量的5个JavaScript小技巧
提升代码质量的5个JavaScript小技巧
368 138
|
1月前
|
索引 Python
5个让代码更Pythonic的小技巧
5个让代码更Pythonic的小技巧
352 135
|
1月前
|
安全 JavaScript 前端开发
5个实用的PHP技巧,提升你的开发效率
5个实用的PHP技巧,提升你的开发效率
|
1月前
|
安全 PHP
PHP 8+ 实用技巧:提升代码质量与效率
PHP 8+ 实用技巧:提升代码质量与效率
|
1月前
|
JavaScript 前端开发 API
解锁 JavaScript 解构赋值的 5 个隐藏技巧
解锁 JavaScript 解构赋值的 5 个隐藏技巧
403 142
|
1月前
|
索引 Python
几个让Python代码更优雅的技巧
几个让Python代码更优雅的技巧
381 136
|
1月前
|
Java
Java开发中三个实用的代码技巧
Java开发中三个实用的代码技巧
342 142
|
1月前
|
Java API
提升效率与健壮性:三个不可不知的Java实用技巧
提升效率与健壮性:三个不可不知的Java实用技巧
367 137

热门文章

最新文章