JAVAScript 提供了很多循环遍历方法 , 下面就来详细看看这些方法都是怎么用的以及使用时的注意事项:
文章插图
一、数组遍历方法1. forEach()forEach 方法用于调用数组的每个元素 , 并将元素传递给回调函数 。数组中的每个值都会调用回调函数 。其语法如下:
array.forEach(function(currentValue, index, arr), thisValue)
【24个JavaScript循环遍历方法,你都知道吗?】该方法的第一个参数为回调函数 , 是必传的 , 它有三个参数:- currentValue:必需 。当前元素
- index:可选 。当前元素的索引值 。
- arr:可选 。当前元素所属的数组对象
let arr = [1,2,3,4,5]arr.forEach((item, index, arr) => {console.log(index+":"+item)})
该方法还可以有第二个参数 , 用来绑定回调函数内部this变量(前提是回调函数不能是箭头函数 , 因为箭头函数没有this):
let arr = [1,2,3,4,5]let arr1 = [9,8,7,6,5]arr.forEach(function(item, index, arr){console.log(this[index])//9 8 7 6 5}, arr1)
注意:- forEach 方法不会改变原数组 , 也没有返回值;
- forEach无法使用 break , continue 跳出循环 , 使用 return 时 , 效果和在 for 循环中使用 continue 一致;
- forEach 方法无法遍历对象 , 仅适用于数组的遍历 。
array.map(function(currentValue,index,arr), thisValue)
该方法的第一个参数为回调函数 , 是必传的 , 它有三个参数:- currentValue:必须 。当前元素的值;
- index:可选 。当前元素的索引值;
- arr:可选 。当前元素属于的数组对象 。
let arr = [1, 2, 3]; arr.map(item {return item + 1;})// 输出结果: [2, 3, 4]
该方法的第二个参数用来绑定参数函数内部的this变量 , 是可选的:let arr = ['a', 'b', 'c']; [1, 2].map(function (e) {return this[e];}, arr)// 输出结果: ['b', 'c']
该方法还可以进行链式调用:let arr = [1, 2, 3]; arr.map(item item + 1).map(item item + 1)// 输出结果: [3, 4, 5]
注意:- map 方法不会对空数组进行检测;
- map 方法遍历数组时会返回一个新数组 , 不会改变原始数组;
- map 方法有返回值 , 可以return出来 , map的回调函数中支持return返回值;
- map 方法无法遍历对象 , 仅适用于数组的遍历 。
for (variable of iterable) {statement}
该方法有两个参数:- variable:每个迭代的属性值被分配给该变量 。
- iterable:一个具有可枚举属性并且可以迭代的对象 。
let arr = [{id:1, value:'hello'},{id:2, value:'world'},{id:3, value:'JavaScript'}]for (let item of arr) {console.log(item); }// 输出结果:{id:1, value:'hello'}{id:2, value:'world'} {id:3, value:'JavaScript'}
注意:- for of 方法只会遍历当前对象的属性 , 不会遍历其原型链上的属性;
- for of 方法适用遍历数组/ 类数组/字符串/map/set 等拥有迭代器对象的集合;
- for of 方法不支持遍历普通对象 , 因为其没有迭代器对象 。如果想要遍历一个对象的属性 , 可以用 for in 方法;
推荐阅读
- 小三|死循环!“山东第一胖”王浩楠翻车后又复胖,体重反弹疑已被抛弃
- 招商信用卡循环利息是什么意思?信用卡账单里“循环利息”是什么意思?
- 三分钟轻松搞懂 HashMap 死循环问题!
- 为什么 JavaScript 在国外逐渐用于前端+后端开发,而国内还是只用它做前端?
- object JavaScript选择 map而非对象存储键值对的 5 个理由附示例
- JavaScript 类型转换和强制转换
- 循环取货(Milk Run) 循环取货
- 不可回收垃圾有哪些、垃圾桶标志以及循环标志和不可回收标志是什么样子
- 小行星撞击曾触发地壳物质循环 地壳物质循环
- 游泳池水处理设备怎么选择? 游泳池循环水处理设备