zoukankan      html  css  js  c++  java
  • Javascript数组迭代精髓,不要说你不懂噢

    数组迭代

    数组迭代是处理各数组的利器,编写代码时常常会用到,为我们提供了大大的便利。如果还不知道,真的别告诉别人你知道js哈哈。
    以下迭代方法均不会改变原数组,带*为必选对象

    1、arr.forEach(function(*cur,index,arraySelf)) 此方法为每个数组元素调用一次函数(回调函数)

    var txt = "";
    var numbers = [45, 4, 9, 16, 25];
    numbers.forEach(myFunction);
    function myFunction(cur, index, array) {
    txt = txt + cur; 
    }
    console.log(txt)  //返回:45491625
    

    2、arr.map(function(*cur,index,arrSelf))对每个数组元素执行函数来创建新数组,不会对没有值的数组元素执行函数

    var numbers1 = [45, 4, 9, 16, 25];
    var numbers2 = numbers1.map(myFunction);
    function myFunction(value, index, array) {
        return value * 2;
    }
    console.log(number2) //返回[90,8,18,32,50]
    

    3、arr.filter(function(*cur,index,arrSelf)) 创建一个包含通过测试的数组元素的新数组

    var numbers = [45, 4, 9, 16, 25];
    var over18 = numbers.filter(myFunction);
    function myFunction(value, index, array) {
        return value > 18;
    }
    console.log(over18); //返回[45,25]
    

    4、arr.reduce(function(prev,cur,index,arrSelf),[initialValue]) 从左到右为每一个数组元素执行函数,并缩减数组的元素(不是改变原数组),最终计算为一个值,initialValue为初始值,没设置默认数组第一个元素为初始值,然后函数从数组第二个元素开始执行

    var arr = [1, 2, 3, 4]; 
    var sum = arr.reduce(function(*prev,*cur, index, arrSelf) { 
    console.log(prev, cur, index); //返回1,3,1 
    return prev + cur; //返回10 
    }) 
    console.log(arr, sum); //这里没有设置初始值,默认为第一个元素1,最后返回**[1,2,3,4] 10 **,若设置初始值为10,则最后sum值为20
    

    5、arr.every(function(*cur,index,arrSelf)) 检查所有数组值是否通过测试,如全部通过返回true,否则返回false

    var numbers = [45, 4, 9, 16, 25];
    var allOver18 = numbers.every(myFunction);
    function myFunction(value, index, array) {
        return value > 18;
    }
    console.log(allOver18); //返回false
    

    6、arr.some(function(*cur,index,arrSelf)) 检查是否存在数组值通过测试,如存在返回true,否则返回false

    var numbers = [45, 4, 9, 16, 25];
    var allOver18 = numbers.some(myFunction);
    function myFunction(value, index, array) {
        return value > 18;
    }
    console.log(allOver18); //返回true
    

    7、arr.find(function(*cur,index,arrSelf)) 返回通过测试函数的第一个数组元素的值

    var numbers = [4, 9, 16, 25, 29];
    var first = numbers.find(myFunction);
    
    function myFunction(value, index, array) {
        return value > 18;
    }
    console.log(first); //返回25
    

    以上对各方法的解释和例子参考w3cschool:https://www.w3school.com.cn/js/js_array_iteration.asp
    如有不正确,欢迎指出改正

  • 相关阅读:
    elasticsearch 调整参数 调参 -- 副本 分片 读写流程 -- elasticsearch配置
    对创新的理解 -- 价值共生、协同生长
    update_by_query ingest pipeline
    create index pattern Forbidden error
    apache转发规则 + nginx location 正则匹配经典案例
    拨测ip+port 告警 telnet nc
    configMap简单理解
    sidecar收集Tomcat日志-普通用户
    使用DBeaver连接pheonix
    bladex开发自己的服务不推送服务器的方法
  • 原文地址:https://www.cnblogs.com/aiyadc/p/13177434.html
Copyright © 2011-2022 走看看