在前端开发中,我们经常需要对数组进行去重操作。过去我们通常采用循环遍历的方式,判断每个元素是否重复来达到去重的目的。在 ES6 中,有更加简洁高效的方式可以解决这个问题。
ES6 去重方式
- Set 数据结构
Set 是 ES6 新增的数据结构,它类似于数组,但是成员的值都是唯一的,没有重复的值。因此可以利用 Set 数据结构进行数组去重操作。
let arr = [1, 2, 3, 3, 4, 4, 5]; let uniqueArr = [...new Set(arr)]; console.log(uniqueArr); // [1, 2, 3, 4, 5]
上述代码中,我们先将数组通过 spread 操作符,展开为一个新的数组,然后将这个新数组作为 Set 构造函数的参数,创建一个 Set 数据结构。最后再用 spread 操作符将 Set 构造函数返回的 Set 数据结构转换成数组形式。这样就实现了数组去重操作。
- Map 数据结构
Map 也是一种新的数据结构,它类似于对象,但是键名可以是任意数据类型。利用 Map 数据结构同样可以实现数组去重操作。
-- -------------------- ---- ------- --- --- - --- -- -- -- -- -- --- --- --- - --- ------ --- --------- - --- --- ---- - - -- - - ----------- ---- - -- ------------------ - --------------- ------ ----------------------- - - ----------------------- -- --- -- -- -- --
上述代码中,我们遍历原数组,判断当前元素是否已经存在于 Map 中,如果不存在就将该元素作为键名添加到 Map 中。同时也将该元素添加到一个新的数组 uniqueArr 中。
总结
ES6 提供的 Set 和 Map 数据结构可以有效地解决数组去重问题,相对于传统的循环遍历方式,代码更加简洁高效。当然,我们也可以使用一些第三方库,如 lodash 的 uniq 方法,但是使用 ES6 的方式可以让我们更好地理解数据结构的应用,为我们的开发能力提升带来更多的帮助。
学习提示
- 了解 Set 和 Map 数据结构的概念和使用方法。
- 掌握展开操作符和 Map 的使用方法。
- 在实际应用中灵活运用 ES6 的数组去重技术。
示例代码
-- -------------------- ---- ------- -- --- -- --- --- - --- -- -- -- -- -- --- --- --------- - ------- ---------- ----------------------- -- --- -- -- -- -- -- --- -- --- --- - --- -- -- -- -- -- --- --- --- - --- ------ --- --------- - --- --- ---- - - -- - - ----------- ---- - -- ------------------ - --------------- ------ ----------------------- - - ----------------------- -- --- -- -- -- --
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64e165d8f6b2d6eab3c8eda1