js--數組的every()和some()方法檢測數組是否知足條件的使用介紹

  • 前言

閱讀本文以前先來思考一個問題,如何如實現判斷一個數組中是否存在知足條件的元素,如何去判斷數組中是否所有元素都知足判斷條件,這裏可能能想到使用for循環遍歷數組,if()判斷每一項是否符合條件,一樣也能夠使用forEach()遍歷,filter()過濾出知足條件的元素並判斷元素個數...這裏介紹一下js數組的every和some方法。數組

  • 正文

1.every()函數

基本概念:學習

every() 方法用於檢測非空數組中全部元素是否都符合指定條件(經過函數提供),若是數組中檢測到有一個元素不知足,則整個表達式返回 false ,且剩餘的元素不會再進行檢測。若是全部元素都知足條件,則返回 true。this

分析spa

every方法針對非空數組進行檢測,檢測條件經過回調函數做爲入參傳遞,返回值爲布爾類型true或者false,若每一個元素都經過檢測才返回true,且該方法不會改變原數組。code

一旦找到不符合檢測條件的元素就返回false,不然遍歷所有元素。對象

使用語法:blog

    array.every(function(currentValue,index,array),thisValue)索引

    接受兩個參數,第一個參數爲傳入的回調函數,該函數又三個參數,currentValue參數必選,爲當前檢測的元素,index爲當前元素的索引,array爲當前檢測的數組,第二個參數可選。對象做爲該執行回調時使用,傳遞給函數,用做 "this" 的值。回調函數

根據本身的理解先來動手實現上面的功能:

    function myEvery(array,rules){
            //非空判斷
            if(array.length==0){
                alert('請傳入非空數組')
            }
            let res=true
            for (let index = 0; index < array.length; index++) {
                if(!rules(array[index])){
                    res=false
                    break
                }
            }
            return res
        }
        var arr=[0,1,2,3,4]
        var  rules = function(value){
            return value > -1 ? true : false
        }
        console.log(myEvery(arr,rules))//輸出true

 

2.some()

基本概念:

some()方法用於檢測數組中的元素是否知足指定條件(函數提供)。若是有一個元素知足條件,則表達式返回true , 剩餘的元素不會再執行檢測。若是沒有知足條件的元素,則返回false。

分析

some()方法針對非空數組進行檢測,檢測條件經過回調函數做爲入參傳遞,返回值爲布爾類型true或者false,若存在任意元素經過檢測就參會true,且該方法不會改變原數組。

一旦找到符合條件的就返回true,不然遍歷所有元素。

使用語法:

    array.some(function(currentValue,index,array),thisValue)

    接受兩個參數,第一個參數爲傳入的回調函數,該函數又三個參數,currentValue參數必選,爲當前檢測的元素,index爲當前元素的索引,array爲當前檢測的數組,第二個參數可選。對象做爲該執行回調時使用,傳遞給函數,用做 "this" 的值。

根據本身的理解先來動手實現上面的功能:

        function mySome(array,rules){
                if(array.length==0){
                    alert('請傳入非空數組')
                }
                let res=false
                for (let index = 0; index < array.length; index++) {
                if(rules(array[index])){
                        res=true
                        break
                    }
                }
                return res
            }
            var arr=[0,1,2,3,4]
            var  rules = function(value){
                return value > 3 ? true : false
            }
            console.log(mySome(arr,rules))//輸出true        
  • 常見使用

用every和some實現上面一樣的效果

        var arr=[0,1,2,3,4]
        let res1=arr.every(v=>v>-1)
        let res2=arr.some(v=>v>3)
        console.log(res1)//輸出true
        console.log(res2)//輸出true    

  every()和some()使用到的地方比較少,不太常見,須要在學習工做中多家聯繫使用吧!

相關文章
相關標籤/搜索