JS 数组的迭代方法

904 阅读4分钟
  • forEach()

    对数组中的每一项运行给定函数,这个方法没有返回值。如果是基本类型,在循环中操作这些数据,不会改变原数组。如果是引用类型,在循环中改变了数据,就会改变原数组。

    语法

    array.forEach(callback(currentValue, index, array) {
         // 
    }, this)
    

    参数

    callback
    为数组中的每个元素执行的函数,该函数接受三个参数:\

    1、currentValue( 当前值 ) 数组中正在处理的当前元素
    2、idnex(索引)数组中正在处理的当前值的索引
    3、array(数组)当前正在处理的数组\

    thisArg可选
    可选参数,当执行回调时用作this的值。

    返回值
    undefined 不会改变原数组

    描述
    1、没有办法跳出或终止 forEach 循环。
    2、如果在迭代中删除了元素,之后的元素会被跳过。

  • every()

    测试数组的所有元素是否都通过了指定函数的测试。一般有需要终止的循环,也会使用这个方法或者some()方法。
    为数组中的每一个元素执行一次 callback函数,直到找到一个使 callback返回 false的元素。这个时候就会终止循环返回 false ,没有的话就全部循环完毕,返回 true

    语法

    arr.every(callback(current, index, array) { }, thisArg);
    

    参数

    callback
    为数组中的每个元素执行的函数,该函数接受三个参数:

    1、currentValue( 当前值 ) 数组中正在处理的当前元素
    2、idnex(索引)数组中正在处理的当前值的索引
    3、array(数组)当前正在处理的数组

    thisArg可选
    可选参数,当执行回调时用作this的值。

    返回值
    如果回调函数返回falsey值,就返回false,否则返回 true。 不会改变原数组

  • some()

    测试数组的所有元素是否都通过了指定函数的测试。一般有需要终止的循环,也会使用这个方法或者every()方法。
    为数组中的每一个元素执行一次 callback函数,直到找到一个使 callback返回 true的元素。这个时候就会终止循环返回 true ,没有的话就全部循环完毕,返回 false

    语法

     arr.some(callback (currentValue, index, array) { }, thisArg);
    

    参数

    callback 为数组中的每一个元素执行的函数,该函数接受三个参数:

    1、currentValue( 当前值 ) 数组中正在处理的当前元素
    2、idnex(索引)数组中正在处理的当前值的索引
    3、array(数组)当前正在处理的数组

    thisArg可选
    可选参数,当执行回调时用作this的值。

    返回值
    如果回调函数返回 truthy值,就返回 true; 否则返回 false; 不会改变原数组

  • filter()

    创建一个新数组,包含通过提供的回调函数返回true的所有元素。全部返回false则返回空数组。
    语法

     arr.filter(callback (currentValue, index, array) { }, thisArg);
    

    参数

    callback 为数组中的每一个元素执行的函数,该函数接受三个参数:

    1、currentValue( 当前值 ) 数组中正在处理的当前元素
    2、idnex(索引)数组中正在处理的当前值的索引
    3、array(数组)当前正在处理的数组

    thisArg可选
    可选参数,当执行回调时用作this的值。

    返回值
    返回一个通过提供的回调函数返回true的所有元素。全部返回false则返回空数组。; 不会改变原数组

  • map()

    创建一个新数组,包含回调函数每次执行的返回值。
    语法

     arr.map(callback (currentValue, index, array) { 
        // dosoming
        return value;
     }, thisArg);
    

    参数

    callback 为数组中的每一个元素执行的函数,该函数接受三个参数:

    1、currentValue( 当前值 ) 数组中正在处理的当前元素
    2、idnex(索引)数组中正在处理的当前值的索引
    3、array(数组)当前正在处理的数组

    thisArg可选
    可选参数,当执行回调时用作this的值。

    返回值
    返回一个通过提供的回调函数返回的值。 不会改变原数组

  • reduce()

    对累加器和数组中的每一个元素应用一个函数,返回累加的值。
    语法

    arr.reduce(callback, initialValue)
    

    参数

    callback 执行数组中每个值的函数,包含四个参数:

    accumulator : 累加器累加回调的返回值;是上一次回调返回的累加值或initialValue(如果设置了initialValue,第一次的值 就是initialValue)。
    currentValue: 正在处理的元素
    currentIndex > 可选:正在处理的当前元素的索引。如果提供了initailValue,则索引号为0,否则为1。
    array > 可选 : 数组本身。

    initialValue >可选:用作第一个调用callback的参数的值。如果没有提供,则将使用数组中的第一个元素。

    返回值
    函数累计处理的结果。