淺談 Typescript 中的 some 和 every 方法
當你想從陣列中檢查陣列內部是否有符合指定條件的元素,並且只回傳布林值時,你可以考慮這兩種方法—some
、every
some
some
方法用來檢查陣列中的元素是否符合指定條件,若找到一個元素符合條件,就回傳 true,反之,陣列中沒有任何元素符合條件則返回 false ;而且只要找到一個符合條件,就會停止檢查後續陣列,直接返回結果。
const arr = [1, 2, 3]
const res = arr.some(val => {
console.log(val)
return val === 2 // condition
})
console.log(res)
// output
// 1
// 2
// true
const res = arr.some(val => {
console.log(val)
return val === 5 // condition
})
console.log(res)
// output
// 1
// 2
// 3
// false
其概念是每次迭代陣列時,some
方法會為每個元素調用 predicate
函數,該函數會判斷該元素是否符合指定條件,當條件符合時回傳 true 否則回傳 false,迭代會持續進行直到該函數返回 true,或者直到迭代結束。
其實跟上面的意思差不多,只是要強調真正執行檢查的是 predicate
函數,而非 some
特異功能。
every
既然講了 some
,那就得說說 every
這個方法,它跟 some
很相似,every
方法會檢查陣列中全部的元素是否都符合條件,全部符合條件才回傳 true,只要有一個不符合就會回傳 false;一樣只要有一個不符合條件,就會停止檢查後續陣列並返回結果。
const arr = [18, 20, 26, 30, 35]
const res = arr.every(val => {
console.log(val)
return val > 10 // condition
})
console.log(res)
// output
// 18
// 20
// 26
// 30
// 35
// true
const res = arr.every(val => {
console.log(val)
return val > 20 // condition
})
// output
// 18
// false
其概念與 some
方法也相似,每次迭代陣列時為每個元素調用 predicate
函數,該函數會判斷該元素是否符合指定條件,當條件符合時回傳 true 否則回傳 false,當 predicate
函數回傳 false 時,every
方法會立刻返回 false,或者直到迭代結束然後返回 true。
Thanks for reading the article 🌷 🌻 🌼
If you like it, please don't hesitate to click heart button ❤️
or follow my GitHub ⭐ I'd appreciate it.
Top comments (0)