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代替。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM