在javascript中,every()方法用來(lái)檢測(cè)數(shù)組的所有元素是否都滿足指定條件(通過(guò)回調(diào)函數(shù)提供),語(yǔ)法“array.every(function(currentValue,index,arr), thisValue)”。
本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。
every() 方法用來(lái)檢測(cè)數(shù)組的所有元素是否都滿足指定條件(通過(guò)回調(diào)函數(shù)提供)。
every() 方法使用指定函數(shù)檢測(cè)數(shù)組中的所有元素:
-
如果數(shù)組中檢測(cè)到有一個(gè)元素不滿足,則整個(gè)表達(dá)式返回 false ,且剩余的元素不會(huì)再進(jìn)行檢測(cè)。
-
如果所有元素都滿足條件,則返回 true。
語(yǔ)法:
array.every(function(currentValue,index,arr), thisValue)
參數(shù):
function(currentValue, index,arr)
:一個(gè)回調(diào)(callbackfn)函數(shù),不可省略,最多可接受三個(gè)參數(shù):
-
value:當(dāng)前數(shù)組元素的值,不可省略。
-
index:當(dāng)前數(shù)組元素的數(shù)字索引。
-
array:當(dāng)前元素屬于的數(shù)組對(duì)象。
thisValue
:可選。對(duì)象作為該執(zhí)行回調(diào)時(shí)使用,傳遞給函數(shù),用作 "this" 的值。如果省略了 thisValue ,"this" 的值為 "undefined" 。
every() 方法會(huì)按升序順序?qū)γ總€(gè)數(shù)組元素調(diào)用一次 callbackfn 函數(shù),直到 callbackfn 函數(shù)返回 false。如果找到導(dǎo)致 callbackfn 返回 false 的元素,則 every() 方法會(huì)立即返回 false;否則,every() 方法返回 true。every() 方法不為數(shù)組中缺少的元素調(diào)用該回調(diào)函數(shù)。
除了數(shù)組對(duì)象之外,every() 方法可由具有 length 屬性具有自己按數(shù)字編制索引的屬性名的任何對(duì)象使用,如關(guān)聯(lián)數(shù)組對(duì)象、Arguments 等。
示例1
下面示例檢測(cè)數(shù)組中元素是否都為偶數(shù),并進(jìn)行提示。
function f (value, index, ar) { if (value % 2 == 0) { return true; }else { return false; } } var a = [2,4,5,6,8]; if (a.every(f)) { console.log("都是偶數(shù)"); }else{ console.log("不全為偶數(shù)"); }
示例2
下面示例檢測(cè)數(shù)組中元素的值是否在指定范圍內(nèi)。范圍值通過(guò)一個(gè)對(duì)象來(lái)設(shè)置。通過(guò)本示例演示 thisArg 參數(shù)的用法。
var f = function (value) { if (typrof value !== 'number') { return false; }else { return value >=this.min && value <= this.max; } var a = [10,15,19]; var obj = {min : 10, max : 20}; if (a.every(f, obj)) { console.log("都在指定范圍內(nèi)。"); } else { console.log("部分不在范圍內(nèi)。"); }
【推薦學(xué)習(xí):javascript高級(jí)教程】