前言
在 JavaScript 中经常需要创建一个 Set,通常我们都需要先创建一个空的 Set,然后填充元素,如下所示:
const mySet = new Set(); mySet.add('foo'); mySet.add('bar'); mySet.add('baz');
这很繁琐,难道我们不能一次性创建并填充 Set 吗?在 ES7 中,这种初始化方式已经得到了支持。
Set 类型初始化
在 ES7 中,我们可以直接使用数组形式创建并填充 Set,如下所示:
const mySet = new Set(['foo', 'bar', 'baz']);
是的,你没看错,就这么简单!使用这种方式,我们可以在创建 Set 的同时填充元素。
实践指南
在实际应用中,使用 Set 的情况非常多,以下是一些使用 Set 类型初始化的实践指南:
数组去重
使用 Set 类型初始化可以方便地对数组进行去重,例如:
const arr = [1, 1, 2, 3, 3, 4, 5, 5]; const mySet = new Set(arr); const uniqueArr = [...mySet]; console.log(uniqueArr); // [1, 2, 3, 4, 5]
这里我们先将数组转化为 Set,然后通过扩展运算符转换回数组,从而得到了去重后的数组。
判断元素是否为唯一值
在实际工作中,我们有时需要判断某个元素是否为唯一值。使用 Set 类型初始化可以轻松实现这一功能,例如:
const mySet = new Set(); if (mySet.has('foo')) { console.log('foo 已存在'); } else { mySet.add('foo'); console.log('添加 foo 成功'); }
使用 Set 类型初始化可以让我们更快地判断元素是否为唯一值,并且非常易于理解和维护。
过滤重复元素
使用 Set 类型初始化还可以轻松地过滤掉数组中的重复元素,例如:
const arr = ['foo', 'bar', 'foo', 'baz', 'bar']; const mySet = new Set(arr); const uniqueArr = [...mySet]; console.log(uniqueArr); // ['foo', 'bar', 'baz']
这里我们同样是先将数组转化为 Set,然后通过扩展运算符转换回数组,从而得到了过滤重复元素后的数组。
总结
ES7 标准中添加的 Set 类型初始化功能可以方便地创建并填充 Set,避免了繁琐的手动填充元素。使用 Set 类型初始化可以方便地实现数组去重、判断元素是否为唯一值以及过滤重复元素等功能。我们应该尽可能地使用 Set 类型初始化,以提高代码效率和可读性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6485c21348841e989447aae7