从遍历数组到 Set 重复值判定:ES11 新增的 for-in、for-of 等操作

阅读时长 4 分钟读完

在前端开发中,遍历数组并处理其中的数据是一项非常基础和重要的操作。在 ES6 中新增了 for-of 循环,可以方便地遍历数组、字符串、Map 对象等可迭代对象。但是,对于数组去重操作,传统的方式比较繁琐,需要用到一些数组方法和对象属性,不太方便。而 ES11 又新增了 for-in 循环和 Set 对象,可以方便地实现数组去重操作。

for-of 循环基础用法

for-of 循环是 ES6 新增的循环语法,用于遍历可迭代对象中的无序集合(如数组、字符串、Map 对象等)。它比传统的 for 循环和 forEach 方法更加简洁直观,同时支持对 break 和 continue 语句进行循环操作。

for-of 循环的语法如下:

其中,iterable 为可迭代对象,value 为当前循环到的元素。我们可以在循环体中直接使用 value 变量来操作当前元素。

下面是一个简单的示例,用 for-of 循环遍历数组并打印出每个元素:

for-in 循环基础用法

for-in 循环是 JavaScript 中最古老的循环语法,用于遍历对象的属性名。在 ES5 中,它还可以用于遍历数组的下标。但是,由于 for-in 循环是无序的,不能保证遍历顺序与属性定义顺序一致。而且,遍历过程会将原型链上的所有可枚举属性都遍历一遍,可能会影响性能。因此,不推荐使用 for-in 循环来处理数组,而是推荐使用 for-of 循环。

for-in 循环的语法如下:

其中,object 为要遍历的对象,key 为当前循环到的属性名。我们可以在循环体中使用 key 变量来操作当前属性名对应的属性值。

下面是一个简单的示例,用 for-in 循环遍历对象并打印出每个属性的名称和值:

-- -------------------- ---- -------
----- --- - -
  ----- ------
  ---- ---
  ------- ------
--
--- ---- --- -- ---- -
  -------------------- --------------
-
-- -------
-- ----- ---
-- ---- --
-- ------- ----

使用 Set 对象去重

ES6 中新增的 Set 对象,是一种无序且不重复的集合,可以用来实现数组去重操作。Set 对象中的元素都是唯一的,因此不能有重复的元素。

Set 对象的基本用法如下:

其中,iterable 为可迭代对象,用于初始化 Set 对象。我们可以将数组或字符串等可迭代对象作为参数传入,从而得到一个去重后的 Set 对象。

下面是一个简单的示例,用 Set 对象去重:

将数组 arr 传入 Set 对象,得到去重后的集合。最后,使用扩展运算符将集合转化为数组。

ES11 的 for-in 遍历 Set 对象

ES11 新增的 for-in 循环,还可以用于遍历 Set 对象中的元素。和 for-of 循环相比,它的优点是可以遍历出重复元素,因此更适合用于数组去重操作。

for-in 循环遍历 Set 对象的语法如下:

其中,set 为要遍历的 Set 对象,value 为当前循环到的元素。我们可以在循环体中使用 value 变量来操作当前元素。

下面是一个示例,用 for-in 循环遍历 Set 对象并去重:

将数组 arr 传入 Set 对象,得到去重后的集合。使用 for-in 循环遍历集合中的元素,将每个元素转化为数字类型,并推入结果数组中。最后,输出结果数组。

总结

通过本文的介绍,我们了解到了 ES6 中新增的 for-of 循环和 ES11 新增的 for-in 循环,以及如何使用 Set 对象进行数组去重操作。这些新特性和对象的使用,可以有效地提高我们的代码编写效率和代码质量。在实际开发中,我们应该善加利用这些特性,并灵活运用到项目中去,以达到更好的开发效果。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64c0ef9f83d39b488154af3e

纠错
反馈