js根据指定对象的属性查看是否在数组或找到该对象
feilong.org 修订于2022-01-28 06:24:23 您好,第 213 位朋友!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 教程