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

來源:互聯網
上載者:User

標籤:blog   邏輯   停止   ems   規範   需要   nbsp   方法   邏輯運算   

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

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.