JS数组遍历

本文针对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来获取对象的成员名称

你可能感兴趣的:(JS数组遍历)