JavaScript some()
some() 方法結合 every() 方法一起學習有助於理解,ES5新增此方法。
兩個方法的功能分別如下:
(1).some() 方法判斷陣列中是否有滿足指定條件的成員。
(2).every() 方法判斷陣列成員是否全部滿足指定條件。
關於 every() 方法內容參閱 JavaScript every() 一章節。
更多關於陣列內容可以參閱 JavaScript Array 陣列 一章節。
語法結構:
[JavaScript] 純文字檢視 複製程式碼array.some(callbackfn[, thisArg])
引數解析:
(1).callbackfn:必需,回撥函式,以索引升序方式對陣列每一個成員執行一次回撥函式 callbackfn,如果 callbackfn 呼叫返回值為 true(或可以轉換為 true),說明有滿足條件的陣列成員,於是終止 some() 方法的執行,並返回 true,如果沒有滿足條件的陣列成員 some() 返回 false,callbackfn 可以有三個引數:
第一個引數是當前陣列成員。
第二個引數是當前陣列成員的索引。
第三個引數就是陣列物件本身。
(2).thisArg:可選,規定回撥函式中 this 所指向的物件,省略,this 指向 window 物件。
瀏覽器相容:
(1).IE9+ 瀏覽器支援此方法。
(2).edge 瀏覽器支援此方法。
(3).谷歌瀏覽器支援此方法。
(4).火狐瀏覽器支援此方法。
(5).opera 瀏覽器支援此方法。
(6).safari 瀏覽器支援此方法。
程式碼例項:
[JavaScript] 純文字檢視 複製程式碼執行程式碼function checkIfEven(value, index, array) { console.log(value,index, array); if(value % 2 == 0){ return true; } } let numbers = [1, 15, 4, 10, 11, 22]; console.log(numbers.some(checkIfEven));
谷歌開發者工具控制檯執行效果截圖如下:
程式碼分析如下:
(1).some() 方法以索引升序方式對每一個陣列成員執行一次 回撥函式。
(2).回撥函式判斷當前陣列成員是否是偶數,如果是,則返回 true,並終止some() 的執行。
(3).當遍歷到成員 4,滿足條件,並終止整個 some() 的執行,some() 返回 true。
[JavaScript] 純文字檢視 複製程式碼執行程式碼let obj = { num: 3 } function checkIfEven(value, index, array) { console.log(this.num) if(value * this.num % 2 == 0){ return true; } } let numbers = [1, 15, 4, 10, 11, 22]; console.log(numbers.some(checkIfEven, obj));
谷歌開發者工具控制檯執行效果截圖如下:
為some() 方法傳遞第二個引數,那麼此回撥函式的 this 就指向此物件。
相關文章
- JavaScript some pointJavaScript
- some thougts about some work as to db admin in paipai.comAI
- gulp some tips
- Some tips of Barcelona
- Some Dictionary Views For ASMViewASM
- Some good websites for C++GoWebC++
- some settings for spacemacs golangMacGolang
- Some difference between mysql & oracleMySqlOracle
- RUST Some None 和OKRustNone
- 一張圖看懂JavaScript中陣列的迭代方法:forEach、map、filter、reduce、every、someJavaScript陣列Filter
- JS中some、every、map、filterJSFilter
- Some Chinese Android Developers InformationAndroidDeveloperORM
- WCF to some extent violates the principle of SOA
- Some 困難的數論
- FTP Download File By Some Order ListFTP
- Some good articles about SQL*loaderGoSQL
- Some examples of using these views follow.View
- Some adminitration script for RAC % ASMASM
- Some new features in 11g
- Github錯誤之failed to push some refs toGithubAI
- Some ideas About ‘invisible bug‘Idea
- some notes about distributed workflows in GitGit
- Swift 5.7 中的 any 和 some (譯)Swift
- ALL, ANY and SOME Comparison Conditions in SQLSQL
- In some cases it's slimex 15 extra important to operateImport
- [Cexpert-003] You should remember some of ASCII!REMASCII
- How MySQL Can Finally Kick Some MongoDBMySqlMongoDB
- Some Oracle high-availability technologiesOracleAI
- Some indexes or index partitions of table have been marked unusableIndex
- git push 失敗 failed to push some refs to gitGitAI
- 簡述forEach()、map()、filter()、every()、some()的用法Filter
- 軟體定義汽車之SOME/IP介紹
- SOA=SOME/IP?你低估了這件事 | 第二彈
- 簡述forEach()、map()、every()、some()和filter()的用法Filter
- r!sc some about The new aspack 2.1 (1千字)
- forEach、map、filter、find、sort、some等易錯點整理Filter
- 在oracle的子查詢中使用some,any和allOracle
- snmpd: Duplicate IPv6 address detected, some interfaces may not be