js 判断数组中是否存在某个元素(字符串,类等)

本文介绍了JavaScript中数组查找的三种方法:indexOf()用于定位元素位置,find()和findIndex()通过回调函数筛选并返回符合条件的第一个元素及其位置。理解这些方法有助于高效地在数组操作中搜索和定位数据。
摘要由CSDN通过智能技术生成

方法一:indexOf(item,start)

Item:要查找的值;
start:可选的整数参数,缺省则从起始位子开始查找。

indexOf() 返回元素在数组中的位置,如果没有则返回-1,该方法只能查找字符串,数字等,不能查找 或者 数组 或者 NaN,如果想 查找 类 或者 数组,可以使用下面介绍的其他方法;

var arr = ['a','b','c','d'];
console.log(arr.indexOf('b'));	// 1
console.log(arr.indexOf('ab')); // -1
// 一般情况下判断元素是否存在
if(arr.indexOf('查找的元素') > -1){
	// 元素存在
}

方法二:arr.find()
arr.find() 的参数是一个回调函数,数组内所有元素会遍历这个回调函数,直到找到第一个返回值为true的元素,然后返回该元素,否则返回undefined。
find() 数组中的每一个元素都会调用一次函数,但是当条件返回true时,find() 返回符合条件的元素的位置,之后的值不会再调用函数。

var tt = {
	"id": 2,
	"name": "test",
};
var arr = [
	{
		"id": 1,
		"name": "test",
	},
	{
		"id": 2,
		"name": "test",
	},
	{
		"id": 3,
		"name": "test",
	}
];
var a=arr.find(function(value,index,arr){
	return value['id'] == tt['id'] && value['name'] == tt['name']
});

console.log(a);//{id: 2, name: "test"}, 注意:这里返回的不是true,而是返回值为true的这个元素;

方法三:array.findIndex()
findIndex()find() 的用法相似,find() 返回的是元素,findIndex() 返回的是第一个符合条件的数组元素的位置,如果所有元素都不符合条件则返回-1
findIndex() 数组中的每一个元素都会调用一次函数,但是当条件返回true时,findIndex() 返回符合条件的元素的位置,之后的值不会再调用函数。

for()forEach()的方法就不讲了,遍历后if判断就行

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值