Javascript中的every()與some()的區(qū)別和應(yīng)用小結(jié)
Javascript中的every()與some()的區(qū)別和應(yīng)用
every()定義和用法
every() 方法用于檢測數(shù)組所有元素是否都符合指定條件(通過函數(shù)提供)。
every() 方法使用指定函數(shù)檢測數(shù)組中的所有元素:
- 如果數(shù)組中檢測到有一個元素不滿足,則整個表達式返回 false ,且剩余的元素不會再進行檢測。
- 如果所有元素都滿足條件,則返回 true。
注意: every() 不會對空數(shù)組進行檢測。
注意: every() 不會改變原始數(shù)組。
isEvery:function(){
let a = [2,3,5,7,9]
let status = a.every(function(currentValue,index,arr){
console.log(currentValue) // 必須。當(dāng)前元素的值
console.log(index) // 可選。當(dāng)前元素的索引值
console.log(arr) // 可選。當(dāng)前元素屬于的數(shù)組對象
return currentValue >= 1 // 判斷數(shù)組中是否所有值都大于等于1
})
console.log(status)
}
// currentValue:2
// index:0
// arr:2,3,5,7,9,
// currentValue:3
// index:1
// arr:2,3,5,7,9,
// currentValue:5
// index:2
// arr:2,3,5,7,9,
// currentValue:7
// index:3
// arr:2,3,5,7,9,
// currentValue:9
// index:4
// arr:2,3,5,7,9,
// status:trueevery()參數(shù)說明
function(currentValue, index,arr){
// currentValue 必須。當(dāng)前元素的值
// index 可選。當(dāng)前元素的索引值
// arr 可選。當(dāng)前元素屬于的數(shù)組對象
// 布爾值。如果所有元素都通過檢測返回 true,否則返回 false。
}some()定義和用法
some() 方法用于檢測數(shù)組中的元素是否滿足指定條件(函數(shù)提供)。
some() 方法會依次執(zhí)行數(shù)組的每個元素:
- 如果有一個元素滿足條件,則表達式返回true , 剩余的元素不會再執(zhí)行檢測。
- 如果沒有滿足條件的元素,則返回false。
注意: some() 不會對空數(shù)組進行檢測。
注意: some() 不會改變原始數(shù)組。
isSome:function(){
let a = [2,3,5,7,9]
let status = a.some(function(currentValue,index,arr){
console.log(currentValue) // 必須。當(dāng)前元素的值
console.log(index) // 可選。當(dāng)前元素的索引值
console.log(arr) // 可選。當(dāng)前元素屬于的數(shù)組對象
return currentValue >= 1 // 判斷數(shù)組中是否有值大于等于1
})
console.log(status)
}
// currentValue:2
// index:0
// arr:2,3,5,7,9
// truesome()參數(shù)說明
function(currentValue, index,arr){
// currentValue 必須。當(dāng)前元素的值
// index 可選。當(dāng)前元素的索引值
// arr 可選。當(dāng)前元素屬于的數(shù)組對象
// 布爾值。如果所有元素都通過檢測返回 true,否則返回 false。
}every()和some()的主要區(qū)別
every()會對數(shù)組中的每一個元素,即currentValue進行匹配,只有全部滿足條件才會返回true,而some()中,只需有一個currentValue滿足條件即可返回true,后面的currentValue不會再進行比較
every()和some()的應(yīng)用場景
如下圖,有一個表格,運用every()和some()來判斷選中的表格狀態(tài),當(dāng)選中其中一條數(shù)據(jù)時,判斷他的當(dāng)前狀態(tài),當(dāng)選擇多條數(shù)據(jù)時判斷他的當(dāng)前狀態(tài)

vue代碼片段
data() {
return {
statusDes:''
}
},
methods:{
handleSelectionChange:function(val){
const statusList = [] //定義數(shù)組,保存每一項狀態(tài)
val.forEach((item) =>{
// 遍歷選擇的項,把狀態(tài)保存到數(shù)組
statusList.push(item.status)
})
// every()會遍歷每一個狀態(tài),當(dāng)全部滿足條件時,才返回true
this.statusDes = statusList.every(this.isAllQuery)
// some()會遍歷狀態(tài),只要一個滿足,就返回true
// this.statusDes = statusList.some(this.isAllQuery)
},
// 過濾狀態(tài),即當(dāng)狀態(tài)顯示:”是“時,返回true
isAllQuery(status){
return status === '是'
},
changes:function(){
if(this.statusDes){
this.$alert('是', '成功狀態(tài)', { confirmButtonText: '確定', type: 'success' })
}else {
this.$alert('否', '失敗狀態(tài)', { confirmButtonText: '確定', type: 'warning' })
}
},
isTrue(value){
return value >=1
}
}結(jié)果分析
every()全選,發(fā)現(xiàn)狀態(tài)不同時:


some()全選,發(fā)現(xiàn)狀態(tài)不同時:

到此這篇關(guān)于Javascript中的every()與some()的區(qū)別和應(yīng)用的文章就介紹到這了,更多相關(guān)js every()與some()的區(qū)別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用ionic(選項卡欄tab) icon(圖標(biāo)) ionic上拉菜單(ActionSheet) 實現(xiàn)通訊錄界面切換實例
這篇文章主要介紹了使用ionic(選項卡欄tab) icon(圖標(biāo)) ionic上拉菜單(ActionSheet) 實現(xiàn)通訊錄界面切換實例代碼,需要的朋友可以參考下2017-10-10
iframe如何動態(tài)創(chuàng)建及釋放其所占內(nèi)存
一個項目后期測試發(fā)現(xiàn)瀏覽器內(nèi)存一直居高不下,而且打開iframe頁面越多內(nèi)存占用越大,在IE系列瀏覽器中尤其明顯,下面與大家分享下iframe動態(tài)創(chuàng)建及釋放內(nèi)存2014-09-09
有關(guān)文件上傳 非ajax提交 得到后臺數(shù)據(jù)問題
本文給大家介紹關(guān)于文件上傳非ajax提交得到后臺數(shù)據(jù)的問題我們該怎么處理呢?下文給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2016-10-10
javascript實現(xiàn)多級聯(lián)動下拉菜單的方法
這篇文章主要介紹了javascript實現(xiàn)多級聯(lián)動下拉菜單的方法,通過javascript自定義函數(shù)實現(xiàn)對多級聯(lián)動下拉菜單的操作,是非常實用的技巧,需要的朋友可以參考下2015-02-02

