JavaScript 数组遍历方法比较

JavaScript 数组遍历方法比较JavaScript 数组遍历方法的对比 for 语句 letarray 1 2 3 4 5 for leti 0 length array length i

JavaScript数组遍历方法的对比

for语句

let array = [1, 2, 3, 4, 5, ]; for (let i = 0, length = array.length; i < length; i++) { 
    console.log(array[i]); } 

这是最传统的循环语句。这里采用了length = array.length缓存数组长度,可以减少每次循环访问它的性能开销。

forEach语句

forEach 接收一个函数作为callback,循环时对数组的每一项调用一次 callback 方法,不改变数组本身,总是返回undefined,并且不可链式调用,循环无法中断

let array = [1, 2, 3, 4, 5, ]; array.forEach((element, index, array) => { 
    console.log(element); }); 

for in语句

for in 通常用来遍历对象的属性,包括可枚举的属性(enumerable为 true),同时还会遍历原型链上的属性,因此效率较低。目前hasOwnPrototype是唯一可以判断一个对象的属性是自定义属性而不是原型链上的属性。

//遍历数组 => 访问key为 下标 let array = [1, 2, 3, 4, 5, ]; for (let key in array) { 
    console.log(key, array[key]); } //遍历对象,访问key为 属性名 var obj = { 
    name: 'xiaoxiao', day: '0805', } for (let key in obj) { 
    if (obj.hasOwnProperty(key)) { 
    const element = obj[key]; console.log(key, element); } } 

for of语句

for of 用于遍历可迭代对象,包括 Array、String、Map、Set、arguments 等,只要是可迭代对象,都可用 for of 来遍历。当用来遍历不可迭代对象时会报错。

var array = [{ 
    name: "xixi" }, { 
    year: 21 }, 13, true]; for (const iterator of array) { 
    console.log(iterator); } 

map() 语句

map() 方法接收一个函数作为callback,循环时对数组的每一项调用一次 callback 方法,并使用返回的值组合成一个新数组(无返回值为 undefined),并返回该数组,不会改变原数组。

var array = [1,2,3] var res = array.map((element, index, array) => element * 5) //[5, 10, 15] 

reduce()语句

reduce()方法提供一个callback和一个初始值,callback 中让数组中的前项和后项做某种计算,累计并返回最终值。初始值作为第一次调用 callback 函数时的第一个参数值。

var array = [3, 8, 5, 2]; var sum = array.reduce((accumulator, currentValue, currentIndex, array) => { 
    return accumulator + currentValue; }, 2); console.log(sum); //20 

fileter()语句

filter() 方法创建一个新数组,其中包含所有在 callback 中返回为 true 的元素,并返回该数组。

var array = [3, 8, 5, 2]; var res = array.filter((element, index, array) => { 
    return element > 3; }); //[8,5] 

some()语句

some() 方法测试数组中是否至少有1个元素通过了被提供的函数测试。当找到通过的元素后,即停止循环,并返回结果 true,否则返回 false。如果是空数组,默认返回false。

var array = [3, 8, 5, 2]; var res = array.some((element, index, array) => { 
    return element > 3; }); //true 

every()语句

every() 方法测试一个数组内的所有元素是否都能通过被提供的测试函数。当找到不通过的元素时,即停止循环,并返回 false, 否则返回 true。若收到一个空数组,此方法在一切情况下都会返回 true。

var array = [3, 8, 5, 2]; var res = array.every((element, index, array) => { 
    return element > 3; }); //false 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/177019.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午8:30
下一篇 2026年3月26日 下午8:30


相关推荐

  • primarykey的用法_什么是primarykey

    primarykey的用法_什么是primarykeyprimarykey是主键一般为自动增长并且是非空int类型的,主要用来保证数据的唯一性;Key是索引约束,对表中字段进行约束索引的,都是通过primaryforeignunique等创建的。常见有foreignkey,外键关联用的;MYSQL建立数据表时,KEY的设置有什么用?key是指关键字,在每一个表所有记录中唯一,普通的表一般可以省去这一项。另外,设置了

    2025年7月26日
    7
  • Linux安装JDK并配置环境变量 – 详细步骤

    Linux安装JDK并配置环境变量 – 详细步骤LInux 安装 JDK 最详细记录 快来收藏一波 同事需要时 甩他脸上

    2025年11月27日
    5
  • quagga安装

    quagga安装quagga 是一款开源的软件 先将下载好的 quagga 解压 然后进入目录 1 检查环境 下发 makefile configure nbsp enable vtysh nbsp enable user rootenable group rootenable vty group root 如果没有权限 请进入 root 或者 sudo 执行 chmod777conf 确保

    2026年3月18日
    2
  • Coze平台高效工作流模板集锦

    Coze平台高效工作流模板集锦

    2026年3月12日
    2
  • mysql面试题总结[通俗易懂]

    mysql面试题总结[通俗易懂]1.主键超键候选键外键   超键(superkey):在关系中能唯一标识元组的属性集称为关系模式的超键    候选键(candidatekey):不含有多余属性的超键称为候选键    主键(primarykey):用户选作元组标识的一个候选键程序主键    外键(foreignkey):如果关系模式R1中的某属性集不是R1的主键,而是另一个

    2022年8月27日
    8
  • 客服系统源码购买_网联接入商户扣款

    客服系统源码购买_网联接入商户扣款介绍:客服系统多种商户接入客服源码,可以实现一行代码接入客服,非常舒服,支持无限客服,无限坐席!私有化源码部署,数据可控,稳定可靠。可自定义版权、logo。支持网页、微信公众号、小程序、App等任何程序对接。客服数量不限,每个客服又独立管理后台和账户密码。每个账户管理可以添加N个客服并且可以分组。双向微信模板消息通知。支持商品推送,对客服评价。支持客户分组。支持设置问候语,进入对话自动发送消息,可只能分配客服和转接。网盘下载地址:http://kekewl.cc/Evr7Jd0UX7h图

    2026年2月8日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号