JavaScript every()
此方法可以結合some方法一起學習,ES5新增此方法。
some判斷陣列中是否有滿足指定條件的元素,任何一個元素滿足條件即可。
從方法名稱也能猜測出它們的區別,every方法非常嚴格,必須保證每一個元素都滿足才行。
更多內容可以參閱JavaScript Array 陣列一章節。
語法結構:
[JavaScript] 純文字檢視 複製程式碼array.every(callbackfn[, thisArg])
every方法會以索引升序方式對陣列元素執行回撥函式callbackfn。
如果對所有的元素執行回撥函式,回撥函式的返回值為true,那麼every方法返回值為true,否則返回false。
特別說明:回撥函式的返回值你不一定非要是true本身,只要可以轉換為true即可。
引數解析:
(1).callbackfn:必需,回撥函式,對陣列的每一個元素執行一次回撥函式,直到回撥函式返回false。
回撥函式可以有三個引數:
第一個引數是當前陣列元素值。
第二個引數是當前陣列元素的索引。
第三個引數就是陣列物件本身。
(2).thisArg:可選,規定回撥函式中this所指向的物件,省略,this指向window物件。
瀏覽器相容:
(1).IE9+瀏覽器支援此方法。
(2).edge瀏覽器支援此方法。
(3).谷歌瀏覽器支援此方法。
(4).火狐瀏覽器支援此方法。
(5).opera瀏覽器支援此方法。
(6).safria瀏覽器支援此方法。
程式碼例項:
[JavaScript] 純文字檢視 複製程式碼執行程式碼function CheckIfEven(value, index){ console.log(value); if(value % 2 == 0){ return true; } } let numbers=[2, 4, 5, 6, 8]; if(numbers.every(CheckIfEven)){ console.log("全都是偶數"); } else{ console.log("不全都是偶數"); }
程式碼執行效果截圖如下:
程式碼分析如下:
(1).every方法傳遞一個回撥函式。
(2).回撥函式會以升序方式執行陣列中的元素,直到回撥函式返回false,否則直到陣列結尾。
(3).上述程式碼中,回撥函式可以判斷陣列元素是否是偶數,如果是偶數則返回true,否則返回false。
(4).陣列第三個元素5,它不是偶數,回撥函式返回false,那麼就終止every方法的執行,every返回false。
[JavaScript] 純文字檢視 複製程式碼執行程式碼function CheckIfEven(value, index){ console.log(value); if(value % 2 == 0){ return "螞蟻部落"; } } let numbers=[2, 4, 5, 6, 8]; if(numbers.every(CheckIfEven)){ console.log("全都是偶數"); } else{ console.log("不全都是偶數"); }
程式碼執行效果截圖如下:
回到函式的返回值沒有必要非得是true本身,只要可以轉換為true即可,對於false也是如此。
[JavaScript] 純文字檢視 複製程式碼執行程式碼let obj={ num:3 } function CheckIfEven(value, index){ console.log(value); if(value*this.num % 2 == 0){ return "螞蟻部落"; } } let numbers=[2, 4, 5, 6, 8]; if(numbers.every(CheckIfEven,obj)){ console.log("全都是偶數"); } else{ console.log("不全都是偶數"); }
程式碼執行效果截圖如下:
為every方法傳遞第二個引數,那麼回撥函式的this就會指向此物件。
相關文章
- javascript forEach無法break,使用every代替JavaScript
- JS中some、every、map、filterJSFilter
- 簡述forEach()、map()、filter()、every()、some()的用法Filter
- 陣列的forEach,map,filter,reduce,reduceRight,every,some方法陣列Filter
- MYSQL錯誤程式碼:1248 Every derived table must have its own alias 解決MySql
- 小心這個陷阱: 為什麼JS中的 every()對空陣列總返回 trueJS陣列
- JS中陣列遍歷方法foreach,filter,some,every,map方法介紹與總結JS陣列Filter
- JavaScript高階:JavaScript物件導向,JavaScript內建物件,JavaScript BOM,JavaScript封裝JavaScript物件封裝
- javaScript系列[06]-javaScript和thisJavaScript
- [Javascript] How javascript read the property?JavaScript
- javaScript系列[05]-javaScript和JSONJavaScriptJSON
- “This” is For JavaScriptJavaScript
- This in JavaScriptJavaScript
- JavaScript -"this"JavaScript
- JavaScriptJavaScript
- javascript ??JavaScript
- 44 道 JavaScript 難題(JavaScript Puzzlers!)JavaScript
- [Javascript] Understanding JavaScript Proxies with Symbol.toPrimitiveJavaScriptSymbolMIT
- JavaScript 教程之JavaScript常用框架簡介JavaScript框架
- [Javascript] Perform Set Operations using JavaScript Set MethodsJavaScriptORM
- javascript — == vs ===JavaScript
- JavaScript selectedIndexJavaScriptIndex
- JavaScript deleteCell()JavaScriptdelete
- JavaScript lastElementChildJavaScriptAST
- JavaScript hasAttribute()JavaScript
- JavaScript getAttributeNode()JavaScript
- JavaScript replaceChild()JavaScript
- JavaScript remove()JavaScriptREM
- JavaScript appendChild()JavaScriptAPP
- JavaScript deleteRow()JavaScriptdelete
- JavaScript clientYJavaScriptclient
- JavaScript之thisJavaScript
- JavaScript isFinite()JavaScript
- JavaScript toggle()JavaScript
- JavaScript Boolean()JavaScriptBoolean
- JavaScript escape()JavaScript
- JavaScript parseFloat()JavaScript
- JavaScript unescape()JavaScript