zoukankan      html  css  js  c++  java
  • 对 forEach(),map(),filter(),reduce(),find(),every(),some()的理解

    1.forEach()

    用法:array.forEach((item,index,arr )=>{}) 

    回调有三个参数:第一个参数是遍历的数组内容,第二个参数是对应的数组索引,第三个参数是数组本身。

     这个方法是没有返回值的,仅仅是遍历数组中的每一项,不对原来数组进行修改;

     但是可以自己通过数组的索引来修改原来的数组;

    var ary = [12,23,24,42,1];  
    var res = ary.forEach(function (item,index,arr) {  
           arr[index] = item*10;  
    })  
    console.log(res);//--> undefined;  
    console.log(ary);//--> 通过数组索引改变了原数组;  [120, 230, 240, 420, 10]

    2.map()

    用法:array.map((item,index)=>{})

    遍历并对其进行操作,返回新数组,原数组不变

    var a = [1,2,3,4];
    var newa = a.map((x)=>{
     return x = x+1;
    });
    console.log(newa,a); 
    //newa : 2 3 4 5   //a: 1 2 3 4

    3.filter()

    用法:array.filter((item,index)=>{})

    筛选符合条件的元素并返回新数组,原数组不变

    var a = [1,2,3,4];
    var newa = a.filter((x)=>{
     return x > 1;
    });
    console.log(newa,a); 
    //newa : 2 3 4    //a: 1 2 3 4

    4.find()

    用法:array.find((item,index)=>{})

    find()是在数组中找到第一个符合条件的元素

    1、当数组中的元素在测试条件时返回true时,表达式就会返回符合条件的元素,剩余的元素不会再检测且原数组不变
    2、如何没有符合条件的元素就返回undefined。

    var ages = [3,18,21,27];
    ages.find(age => age>=24);   //27

    拓展:findIndex()

    findIndex()方法的用法与find()方法非常类似,返回第一个符合条件的数组成员的位置,如果所有成员都不符合条件,则返回-1。

    let args =  [3,18,21,27]
    args.findIndex((arg) => arg > 24)
    //返回符合条件的值的位置(索引)  3

     let args = [3,18,21,27]
      args.findIndex((arg) => arg > 99)
      //返回符合条件的值的位置(索引) -1

    5.every()

    用法:array.every((item,index)=>{})

    检测是否所有元素都符合条件,返回true或false 

    只有都满足条件才返回true;
    只要有一个不满足就返回false;

    // 判断数组arr1是否全是偶数
    // 判断数组arr2是否至少有一个偶数
     
    var arr1=[1, 2, 3, 4, 5];
    console.log(
        arr1.every(function(value, index, array){
            return value % 2 == 0;
        })
    );    // false 

    6.some()

    用法:array.some((item,index)=>{})

    检测数组中是否有满足条件的元素,返回true或false

    判断数组中是否至少有一个元素满足条件
    只要有一个满足就返回true
    只有都不满足时才返回false

    // 判断数组arr1是否全是偶数
    // 判断数组arr2是否至少有一个偶数
     var arr2=[1, 4, 6, 8, 10]; 
    console.log(
        arr2.some(function(value, index, array){
            return value % 2 == 0;
        })
    );    // true

    7.reduce()

    用法:array.reduce((pre,item)=>{})

    prev:初始值,或第一个元素的值,或上一次叠加的结果

    数组从左到右做累加操作并返回最后的结果(array=[1,2,3,4,5] 就是1和2经function操作完返回的结果再和3操作,如此到最后只得到一个值)

    var arr = [1, 2, 3, 4];
    var sum = arr.reduce((prev, cur, index, arr)=> {
        console.log(prev, cur, index);
        return prev + cur;
    })
    console.log(arr, sum); //10

  • 相关阅读:
    文件操作:fopen()
    memset函数
    窗体操作:GetWindowLong()
    窗体操作:CBrush类
    窗体操作:GetWindowLong()
    窗体操作:ShowWindow(SW_HIDE)
    文件选择对话框:CFileDialog
    信息提示框:MessageBox
    mysql的text类型长度问题
    PV是什么意思
  • 原文地址:https://www.cnblogs.com/xiaoxiao2017/p/14954644.html
Copyright © 2011-2022 走看看