Javascript中的every()與some()的區(qū)別和應用小結(jié)
Javascript中的every()與some()的區(qū)別和應用
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) // 必須。當前元素的值
console.log(index) // 可選。當前元素的索引值
console.log(arr) // 可選。當前元素屬于的數(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 必須。當前元素的值
// index 可選。當前元素的索引值
// arr 可選。當前元素屬于的數(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) // 必須。當前元素的值
console.log(index) // 可選。當前元素的索引值
console.log(arr) // 可選。當前元素屬于的數(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 必須。當前元素的值
// index 可選。當前元素的索引值
// arr 可選。當前元素屬于的數(shù)組對象
// 布爾值。如果所有元素都通過檢測返回 true,否則返回 false。
}every()和some()的主要區(qū)別
every()會對數(shù)組中的每一個元素,即currentValue進行匹配,只有全部滿足條件才會返回true,而some()中,只需有一個currentValue滿足條件即可返回true,后面的currentValue不會再進行比較
every()和some()的應用場景
如下圖,有一個表格,運用every()和some()來判斷選中的表格狀態(tài),當選中其中一條數(shù)據(jù)時,判斷他的當前狀態(tài),當選擇多條數(shù)據(jù)時判斷他的當前狀態(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),當全部滿足條件時,才返回true
this.statusDes = statusList.every(this.isAllQuery)
// some()會遍歷狀態(tài),只要一個滿足,就返回true
// this.statusDes = statusList.some(this.isAllQuery)
},
// 過濾狀態(tài),即當狀態(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)不同時:

到此這篇關于Javascript中的every()與some()的區(qū)別和應用的文章就介紹到這了,更多相關js every()與some()的區(qū)別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
JS實現(xiàn)unicode和UTF-8之間的互相轉(zhuǎn)換互轉(zhuǎn)
需要將PC送過來的UTF-8轉(zhuǎn)換成UNICODE才能將內(nèi)容通過短信發(fā)送出去,同樣,接收到的短信為unicode編碼,也許轉(zhuǎn)換成UTF-8才能在PC端軟件顯示出來2017-07-07
AngularJs中Bootstrap3 datetimepicker使用實例
這篇文章主要為大家詳細介紹了AngularJs中Bootstrap3 datetimepicker使用實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-12-12
webpack本地開發(fā)環(huán)境無法用IP訪問的解決方法
下面小編就為大家分享一篇webpack本地開發(fā)環(huán)境無法用IP訪問的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-03-03

