zoukankan      html  css  js  c++  java
  • JS ECMAScript 5中的every 和 some方法进行逻辑判断

    ECMA Script 5 中新增两个不错的关于数组元素的逻辑运算方法some, every

    Array.some(function(item){}); 

    Array.every(function(item){});

    every方法表示当数组每个元素在判定函数中都返回true,则最终结果为true,相当于逻辑运算符 &&,

    some则当其中一个返回true,则最终结果为true, 相当于逻辑运算符||。

    以下来举例说明:

            var items = [1, 2, 3, 4, 5];
            var res = items.every(function(item){
                return item > 3;
            });
            console.log(res); // false
    
            items = ['a', 2, 3, 4, 5];
            res = items.every(function(item){
                return !isNaN(item); // 检查是否是数值
            }); // 检查是不是每个元素都是数字
    
            console.log(res); // false
    
            items = ['a', 2, 3, 4, 5];
            res = items.some(function(item){
                return !isNaN(item); // 检查是否是数值
            });
    
            console.log(res); // true    
    

      

    当然逻辑或,逻辑与运算可能会遇到数组为空的情况,所以按照数学上的惯例,数组为空时,some直接返回false, every直接返回true,

    所以当设计到特点业务时,需要注意到这点,最好还是添加限定条件,确保数组不为空,使代码意图更加明了可读。

    同时,从规范中还了解到,跟逻辑与相似,当其中一个判定返回false时,整个计算就直接停止,返回最终结果false从而提高效率。所以请不要在判定函数里添加其他业务逻辑或者执行代码,如有需求,请使用map代替。

  • 相关阅读:
    CF700E Cool Slogans
    [NOI2018]你的名字
    [CTSC2012]熟悉的文章
    CF666E Forensic Examination
    [BZOJ4310]跳蚤
    CF1063F String Journey
    [BZOJ3277]串/CF204E Little Elephant and Strings
    CF123D String
    使用ActiveReports for .net 进行报表开发之交叉报表(转)
    使用ActiveReport for .net 进行报表开发(一)(转自Cure The Last Day Of Summer)
  • 原文地址:https://www.cnblogs.com/rayjs/p/6165713.html
Copyright © 2011-2022 走看看