当前位置:首页 > 技术分析 > 正文内容

不要再使用for循环遍历集合了,试试JavaScript新增的7种方法吧

ruisui885个月前 (02-03)技术分析21

前端开发小伙伴们,今天介绍除了for循环外的其他几种遍历方法,收藏好了。

除了传统的 for 循环外,ES6 及后续版本引入了一些新的方法,使得遍历更加简洁和高效。以下是 7 种 JavaScript 新增的遍历方法:

1. for...of 循环

  • 特点:用于遍历可迭代对象(如数组、字符串、Map、Set 等)的值。
  • 示例代码
const arr = [1, 2, 3, 4, 5];
for (const value of arr) {
console.log(value); // 输出:1 2 3 4 5
}

2. Array.prototype.forEach()

  • 特点:数组的 forEach 方法可以对数组中的每个元素执行一次提供的函数。
  • 示例代码
const arr = [1, 2, 3, 4, 5];
arr.forEach((value, index) => {
console.log(`Index: ${index}, Value: ${value}`); // 输出每个元素的索引和值
});

3. for...in 循环

  • 特点:用于遍历对象的可枚举属性。
  • 示例代码
const obj = { a: 1, b: 2, c: 3 };
for (const key in obj) {
if (obj.hasOwnProperty(key)) {
console.log(`Key: ${key}, Value: ${obj[key]}`); // 输出对象的键和值
}
}

4. Array.prototype.map()

  • 特点:创建一个新数组,其结果是该数组中的每个元素都调用一次提供的函数后的返回值。
  • 示例代码
const arr = [1, 2, 3, 4, 5];
const squaredArr = arr.map(value => value * value);
console.log(squaredArr); // 输出:[1, 4, 9, 16, 25]

5. Array.prototype.filter()

  • 特点:创建一个新数组,包含通过所提供函数实现的测试的所有元素。
  • 示例代码
const arr = [1, 2, 3, 4, 5];
const evenArr = arr.filter(value => value % 2 === 0);
console.log(evenArr); // 输出:[2, 4]

6. Array.prototype.reduce()

  • 特点:对数组中的所有元素执行一个由你提供的 reducer 函数(升序执行),将其结果汇总为单个返回值。
  • 示例代码
const arr = [1, 2, 3, 4, 5];
const sum = arr.reduce((accumulator, currentValue) => accumulator + currentValue, 0);
console.log(sum); // 输出:15

7. Object.entries() 和 Object.keys() / Object.values()

  • 特点Object.entries() 返回一个给定对象自身可枚举属性的键值对数组。Object.keys() 返回一个由给定对象的自身可枚举属性组成的数组。Object.values() 返回一个给定对象自身可枚举属性的值的数组。
  • 示例代码
const obj = { a: 1, b: 2, c: 3 };

// 使用 Object.entries()
for (const [key, value] of Object.entries(obj)) {
console.log(`Key: ${key}, Value: ${value}`); // 输出对象的键和值
}

// 使用 Object.keys()
for (const key of Object.keys(obj)) {
console.log(`Key: ${key}, Value: ${obj[key]}`); // 输出对象的键和值
}

// 使用 Object.values()
for (const value of Object.values(obj)) {
console.log(`Value: ${value}`); // 输出对象的值
}

创作不易,如果这篇文章对你有用,欢迎点赞关注加评论哦

小伙伴们在工作中还遇到过其他应用场景吗,欢迎评论区留言讨论哦。

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/699.html

分享给朋友:

“不要再使用for循环遍历集合了,试试JavaScript新增的7种方法吧” 的相关文章

快速上手React

web前端三大主流框架1、Angular大家眼里比较牛的框架,甚至有人说三大框架中只有它能称得上一个完整的框架,因为它包含的东西比较完善,包含模板,数据双向绑定,路由,模块化,服务,过滤器,依赖注入等所有功能。对于刚开始学习使用框架的小伙伴们,可以推荐这个框架,学会之后简直能颠覆之前你对前端开发的认...

HTML5最新版本介绍

HTML5是HTML4.01和XHTML1.0之后超文本标记语言的最新版本,由一群自由思想者设计,最终实现了多媒体支持、交互性、更智能的表单和更好的语义标注。 HTML 5不只是 HTML规范的最新版本,它是用于生成现代 Web内容的一系列相关技术的总称,其中最重要的三个技术是:HTML5核心规范...

30 个纯 HTML5 实现的游戏

浏览器和 JavaScript 的功能逐年不断的变强变大。曾几何时,任何类型的游戏都需要Flash。但随着 HTML5 发展,HTML5 + WebGL 游戏式就慢慢占领着这个舞台。以下是30款流行的游戏,它们可以在所有现代浏览器中运行,并且只使用web技术构建。1. HexGL地址:http://...

Firefox正针对Vue.js进行优化,下版本响应速度将“显著提升”

IT之家 9 月 7 日消息,据 Mozilla 官方博客发文显示,Firefox 浏览器正针对 Vue.js 进行优化,此前 FireFox 浏览器在面向 Vue 3 时遇到了一些性能问题。▲ 图源 Mozilla 官方博客目前开发人员已经对此进行了解决,在 Firefox 118 内部版本中进行...

微信企业号首款永久免费应用问世

7月14日,微信企业号移动办公应用领跑者——办公逸宣布:其所研发的微信办公应用将永久免费,企事业单位只要拥有微信企业号都可以免费安装办公逸各项应用,此举标志着微信办公免费时代现已到来!据悉,办公逸(www.bangongyi.com)现已推出四大微信办公套件,分别为:移动办公管理套件、客户关系管理套...

突发!微信全面封禁字节跳动旗下办公产品飞书

日前,字节跳动旗下办公套件飞书发布官方公告称,飞书相关域名无故被微信全面封禁,并且被单方面关闭微信分享API接口。和讯科技对此进行了尝试,发现“feishu”相关域名链接在微信内均无法打开,显示“如需浏览,请长按网址复制后使用浏览器访问”,而在飞书内也无法直接跳转微信分享,显示“未获得分享权限”。据...