最近的项目用到了需要比较数组中的对象属性是否相同,在这我自己整理并记录一下…
findIndex() 方法
这个方法可以返回第一个满足条件的索引(也就是该数据在数组中的位置),如果都不满足则会返回 -1
let checkArr = [
{
name:'是否都为true',
same:false
},
{
name:'并不是',
same:true
}
]
if(checkArr.findIndex(x=>x.same == true) == -1){
console.log('验证通过')
}else{
console.log('验证不通过')
}
find() 方法
这个方法会返回满足条件的数组成员。会从前往后一直寻找,直到找到第一个满足条件的成员并返回。如果没有符合条件的成员,会返回undefined
let checkArr = [
{
name:'是否都为true',
same:false
},
{
name:'并不是',
same:true
}
]
if(checkArr.find(x=>x.same == true) == undefined){
console.log('验证通过')
}else{
console.log('验证不通过')
}
every() 方法
该方法会检测数组中所有的成员对象是否都满足条件。如果数组中所有的成员对象都满足条件会返回true,否则会返回false并且不会再检测剩下的成员。
- 它不会改变原数组
- 不会对空数组进行检测
let checkArr = [
{
name:'是否都为true',
same:false
},
{
name:'并不是',
same:true
}
]
if(checkArr.every(x=>x.same == true)){
console.log('验证通过')
}else{
console.log('验证不通过')
}
some() 方法
该方法会检测数组中所有的成员对象,有一个或者多个满足条件的成员就返回true;如果都不满足就返回false
- 它不会改变原数组
- 不会对空数组进行检测
let checkArr = [
{
name:'是否都为true',
same:false
},
{
name:'并不是',
same:true
}
]
if(checkArr.some(x=>x.same == true)){
console.log('验证通过')
}else{
console.log('验证不通过')
}