您好,欢迎访问代理记账网站
移动应用 微信公众号 联系我们

咨询热线 -

电话 15988168888

联系客服
  • 价格透明
  • 信息保密
  • 进度掌控
  • 售后无忧

JS各数组循环方法得区别及不同应用场景

1、forEach()

语法:(来自mdn文档)

// Arrow function
forEach((element) => { ... } )
forEach((element, index) => { ... } )
forEach((element, index, array) => { ... } )

// Callback function
forEach(callbackFn)
forEach(callbackFn, thisArg)

// Inline callback function
forEach(function callbackFn(element) { ... })
forEach(function callbackFn(element, index) { ... })
forEach(function callbackFn(element, index, array){ ... })
forEach(function callbackFn(element, index, array) { ... }, thisArg)

特点:
1、没有返回值(返回值为undefined)
2、return 会停止执行后面的代码然后直接进行下一次循环,也就是说不会跳出循环
3、不能改变原数组(仅限于数组元素为基本数据类型,如果是引用数据类型应该是不可以修改地址)

2、map()

特点:
1、有返回值,且返回值为新数组,可以实现链式调用
2、和forEatch()一样,循环无法中断(除非使用try catch)return 只能跳出然后进行下一次循环
3、和forEatch一样不可以改变原数组

3、filter ()

1、filter()和map()的特点一致,只不过应用场景不同
2、和map的区别:filter()函数如其名,是将原数组数据进行过滤然后返回,和原数组的关系是包含和被包含的关系,map()是将原数组数据挨个加工,然后生成新数组返回

4、for(… of …)

1、可以return break 用起来比较接近正常的for循环
2、for of主要是是针对ES6的拓展,该循环是通过Iterator(遍历器接口)实现数据循环得,关于Iterator可以看看阮一峰大神得文档 https://es6.ruanyifeng.com/#docs/iterator 而ES6新增得数据类型map、set、类数组、数组都有该接口,所以for of可以对上述数据进行遍历

5、后续补充……


分享:

低价透明

统一报价,无隐形消费

金牌服务

一对一专属顾问7*24小时金牌服务

信息保密

个人信息安全有保障

售后无忧

服务出问题客服经理全程跟进