zoukankan      html  css  js  c++  java
  • JavaScript Array every()&some()&reduce()方法

    every()方法测试数组的所有元素是否都通过了指定函数的测试。 

    // 每一项都要满足条件才会返回true,只要有一项不满足返回false
    
    var arr = [1, 2, 3, 4];
    
    let bl = arr.every(item => item > 0);
    
    //console.log(bl);    true
    
    let bl = arr.every(item => item > 2);
    
    //console.log(bl);    false

    some() 方法测试是否至少有一个元素通过由提供的函数实现的测试。

    // 只要有一个满足,就返回true
    
    var arr = [1, 2, 3, 4];
    
    // 只要有一个小于5的数返回true
    
    var bl2 = arr.some(item => item < 3)
    
    console.log(bl2); // true

     reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。

    var arr = [1,2,3,4];
    
    // 每循环一次执行这个回调函数
    /*
    第一次调用回调函数会从数组中拿前两个值
    第2次调用回调函数,回调函数的第一个参数是上一次回调函数的返回值
    ....
    */
    
    let n = arr.reduce(function (item1,item2){
    console.log(item1,item2);
    return item1 + item2	
    });
    console.log(n);
    
    /*
    给reduce传入了第二个参数:
    第一次调用回调函数的第一个参数,是初始值,第二个参数就是从数组中拿第一个值
    第2次调用回调函数,回调函数的第一个参数是上一次回调函数的返回值
    ....
    */
    
    let m = arr.reduce((item1,item2) => {
    console.log(item1,item2);
    return item1 + item2;
    },100);
    
    
    var o = [
    {
    n:1,
    m:2
    },
    {
    n:2,
    m:3
    }
    ];
    
    let miaov = o.reduce((item1,item2) => {
    return item1 + item2.n
    },100);
    
    console.log(miaov);
    
    var o1 = [
    {
    n:1,
    m:2
    },
    {
    n:2,
    m:3
    }
    ];
    
    let ketang = o1.reduce((item1,item2) => {
    return {
    n: item1.n + item2.n,
    m: item1.m + item2.m,
    }
    },{n:100,m:50});
    
    console.log(ketang);
  • 相关阅读:
    移动硬盘无法识别提示需要格式化的解决办法
    Cassandra 入门(资料收集)
    [转] NoSQL生态系统
    软件项目实施问题收集(LastUpdatedOn:20141117)
    Sql server 收缩日志
    关于重构需要了解的一些原则
    C#定时任务采用线程和队列实现
    [转]我是如何带领团队开发项目的
    ASP.NET MVC 多套皮肤解决方案
    Mysql 问题汇总(不断更新中...)
  • 原文地址:https://www.cnblogs.com/twodog/p/12134697.html
Copyright © 2011-2022 走看看