本文针对JS中数组遍历做一个总结
普通 for 循环
for(let i = 0, len = arr.length; i < len; i++) {
console.log(arr[i]);
}
forEach 循环(数组自带的方法)
arr.forEach((value, index) => {
console.log('序号:' + index + ', 值:' + value)
});
注意: forEach循环中不能 break, return和循环中改变数组的值
map 循环
let newArr = arr.map((value, index) => {
return value++;
});
注意: map循环返回一个新数组,可以return, break
filter 循环
let newArr = arr.filter((value, index) => {
return value > 20;
});
注意: filter循环返回一个新数组,其中值为返回判断条件为true的值(可以理解为过滤)
reduce
let sum = arr.reduce((prev, cur, index, arr) => {
console.log(prev, cur);
return prev + cur;
}, 0);
注意: 一般 reduce用来计算数组的每一项之和,第一个参数是函数,第二个参数是初始值,若不指定初始值的话将从数组的第二项开始给每一项执行函数,所以一般我们都会指定初始值.第一个函数参数分别为 上一项, 当前项, 当前数组下标, 当前数组
for-of 循环
for (const item of arr) {
console.log(item)
}
- 可以正确响应break、continue和return语句
- 不仅支持数组,还支持大多数类数组对象
- 支持字符串遍历
for-in 循环
for (const key in obj) {
console.log(key + ':' + obj[key])
}
注意: for-in循环适用于遍历对象,若是遍历数组的话访问的是数组的下标.另外,在跨浏览器的设计中,我们不能依赖于for-in来获取对象的成员名称
网友评论