比较数组中的对象的同一属性值是否相同

最近的项目用到了需要比较数组中的对象属性是否相同,在这我自己整理并记录一下…

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并且不会再检测剩下的成员。

  1. 它不会改变原数组
  2. 不会对空数组进行检测
let checkArr = [
	{
		name:'是否都为true',
		same:false
	},
	{
		name:'并不是',
		same:true
	}
]
if(checkArr.every(x=>x.same == true)){
	console.log('验证通过')
}else{
	console.log('验证不通过')
}

some() 方法

该方法会检测数组中所有的成员对象,有一个或者多个满足条件的成员就返回true;如果都不满足就返回false

  1. 它不会改变原数组
  2. 不会对空数组进行检测
let checkArr = [
	{
		name:'是否都为true',
		same:false
	},
	{
		name:'并不是',
		same:true
	}
]
if(checkArr.some(x=>x.same == true)){
	console.log('验证通过')
}else{
	console.log('验证不通过')
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值