JS ECMAScript 5中的every 和 some方法進行邏輯判斷

ECMA Script 5 中新增兩個不錯的關於數組元素的邏輯運算方法some, everyjavascript

 

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

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

every方法表示當數組每一個元素在斷定函數中都返回true,則最終結果爲true,至關於邏輯運算符 &&,函數

some則當其中一個返回true,則最終結果爲true, 至關於邏輯運算符||。設計

 

如下來舉例說明:blog

 

        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,ip

因此當設計到特色業務時,須要注意到這點,最好仍是添加限定條件,確保數組不爲空,使代碼意圖更加明瞭可讀。數學

 

同時,從規範中還了解到,跟邏輯與類似,當其中一個斷定返回false時,整個計算就直接中止,返回最終結果false從而提升效率。因此請不要在斷定函數裏添加其餘業務邏輯或者執行代碼,若有需求,請使用map代替。it

相關文章
相關標籤/搜索