飞龙博客

前端文字教程

js根据指定对象的属性查看是否在数组或找到该对象

feilong.org 修订于2022-01-28 06:24:23 您好,第 467 位朋友!

js数组中,根据指定元素,查看是否在数组中。

查找符合的第一个元素。

先测测这个对象是否在数组中,方法有一下几种。测试就知道了。

一元数组可以用 indexOf 找索引值。如果求得的索引值是-1,则说明不在数组中。

不管一维数组还是二维数组,可以用js的 some数组,可以直接判断指定项是否在数组中。

还有findIndex函数,也可以找一维数组还是二维数组,也可以看某个指定对象在数组的索引值。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
	var zts = ['', '草稿', '等待批准', '已批准'];	console.log('000 zts=', zts);
 
 
 
	var one = '已完成';
	var idx1 = zts.indexOf(one);
	console.log('000 例1=== ' + one + ' 在数组里的索引值 如果是-1,则说明不在数组中 =', idx1);
 
 
 
	var two = '草稿';
	var inZts = zts.some(item => {
	    return item == '草稿'
	});
	console.log('000 例2=== ' + two + ' 是否在数组中 =', inZts);
 
 
 
	var three = '草稿';
	var idx3 = zts.findIndex((item, index, arr) => {
	    console.log('000 findIndex 检查项item=', item);
	    console.log('000 findIndex 第几个 index=', index);
	    console.log('000 findIndex 原始数组 arr=', arr);
	    return item == '等待批准'
	})
	console.log('000 例3=== ' + three + ' 在数组里的索引值 idx3=', idx3);

接着跟随飞龙一起看测试的举例。看怎么找指定对象?也就是,根据此对象的某个属性,找到此对象在数组的具体情况。

js根据指定元素,查找在数组中的位置索引值。这里以二维数组为例。
最简单直接的方法是用find函数。但是有些浏览器不一定支持兼容。

比较好理解的是filter函数,注意,这个是es6函数。

js里,还有一个findIndex函数,也可以找对象在数组里的索引值。
你可以在修改位置,等于 718 或 999,再看结果。

当然,还可以for循环,来找符合要求的对象元素。如果找到对象,则用break跳出循环。

或forEach循环,但是,js跳出forEach循环,不是很方便。因为 for循环有相应的break语句。而forEach没有。

如果要提前终止forEach循环,要用try,并抛出异常。飞龙不建议你使用forEach又跳出循环。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
        var rens = [{    zjly: '702',
    userName: '李灿',
    userId: '01ab20b3-de26-4908-8ec7-a2bb6f2b3b1c'
}, {
    zjly: '718',
    userName: '刘九凤',
    userId: '361408a3-5dcb-437a-aa14-10e7c1635448'
}]
 
 
var ren1 = rens.filter(item => item.zjly == '702')
console.log('000 ren1=', ren1[0]);
 
 
var ren2 = rens.find(item => item.zjly == '702')
console.log('000 ren2=', ren2);
 
 
var idx3 = rens.findIndex((item, index, arr) => {
 
    console.log('000 findIndex item=', item);
    console.log('000 findIndex index=', index);
    console.log('000 findIndex arr=', arr);
 
    return item.zjly == '718' //修改位置
 
})
console.log('000 idx3=', idx3);
console.log('000 ren3=', rens[idx3]);
 
 
 
var findme = {}
for (var i = 0; i < cars.length; i++) {
    var obj = rens[i]
    if (obj.zjly == '718') {
        findme = obj
        break
    }
}
console.log('000 findme=', findme);

更新网址:https://feilong.org/js-object-meta-find-index
最初发布:20220128 06:15:53 feilong.org 于广州

加入收藏夹,查看更方便。

所在分类: js 教程

旧文: