首页 > 自考资讯 > 自考资讯

如何使用IndexOf方法获取JS对象数组的索引?

2024-10-09

大家好,今天小编来为大家解答如何使用IndexOf方法获取JS对象数组的索引?这个问题,很多人还不知道,现在让我们一起来看看吧!

获取包含对象的数组的索引的最佳方法是什么?

获取数组中对象的索引的最佳方法是什么?

想象一下这个场景:

例如以下场景:

var hello={ hello: 'world', foo: 'bar'};var qaz={ hello: 'stevie', foo: 'baz'}var myArray=[];myArray.push(hello,qaz);现在我想要hello 属性为“stevie”的对象的索引,在本例中为1。

现在我想获取hello 属性值为`stevie` 的对象的索引。在本例中为1

如何使用IndexOf方法获取JS对象数组的索引?

我是JavaScript 新手,我不知道是否有一个简单的方法,或者我是否应该构建自己的函数来做到这一点

我是JavaScript 的新手,我不知道是否有一种简单的方法,或者我是否需要自己编写一个

答案

问题主体接受的好评答案:

我认为你可以使用map函数一行解决它

使用地图功能帮你一键搞定

如何使用IndexOf方法获取JS对象数组的索引?

pos=myArray.map(function(e) { return e.hello; }).indexOf('stevie');旁白:虽然这行代码简单漂亮,而且确实使用了indexOf函数,但是对于大数组来说,尤其是频繁更新的大数组效率低下。所以有人建议findIndex 是更好的选择

另一个答案:

在ES2015 中,这很容易:

myArray.map(x=x.hello).indexOf('stevie') 或者,对于较大的数组可能具有更好的性能:

myArray.findIndex(x=x.hello==='stevie')

用户评论

£烟消云散

indexOf()真是个好东西啊!之前不知道这个方法,遇到这种情况总是得手动遍历一个个查,麻烦死了!现在终于知道啦,以后用上肯定更方便高效了!

    有13位网友表示赞同!

太易動情也是罪名

写得真不错,解释清楚了indexOf()的使用方式,而且还提供了具体实例,对于初学者来说非常友善。我今天刚好也在学习JavaScript,看到这篇博客真是timely!

    有7位网友表示赞同!

呆檬

这个方法确实很实用,尤其是在处理数组的时候经常会用到,感谢分享!不过,我想问问一下,如果找不到匹配的元素该怎么办?

    有18位网友表示赞同!

北朽暖栀

这个方法对于查找特定元素所在的索引非常方便,但要注意的是,它只返回第一个匹配元素的索引。 如果数组中存在多个相同的元素,则只返回第一个找到的索引。

    有8位网友表示赞同!

∞◆暯小萱◆

我之前试着用indexOf()来判断一个对象是否在数组中是否存在,结果发现不准确。仔细阅读你的博文,明白了这是因为indexOf()只关注元素内容的比较,而并非完全相同的对象比较。

    有7位网友表示赞同!

我的黑色迷你裙

我觉得可以多介绍一些其他方法,例如findIndex(),这个方法的功能类似于indexOf,但是返回值为匹配元素对应对象本身,比单纯返回索引更直接。

    有10位网友表示赞同!

爱情的过失

感觉你的文章说的很简单粗暴,没有深入讲解各种参数的使用和可能出现的问题

    有8位网友表示赞同!

巷雨优美回忆

这篇文章太基础了,对于有一定编程经验的人来说没什么用处。能不能介绍一下一些更进阶的应用场景?

    有15位网友表示赞同!

tina

学习JavaScript的时候碰到这个问题一直没搞懂,看了你的文章一下子就明白了!真是太感谢了!

    有11位网友表示赞同!

稳妥

说的简单易懂,对新手非常友好!

    有5位网友表示赞同!

凉月流沐@

文章结构清晰,讲解到位,很适合作为入门学习者的参考。

    有16位网友表示赞同!

oО清风挽发oО

如果能添加一些代码示例,或者用动画展示一下方法的执行过程,会更加直观易理解。

    有12位网友表示赞同!

墨染殇雪

对于一个JS对象数组怎么使用IndexOf方法得到索引?这个问题太常见了,几乎每个人都会遇到吧!感谢博主分享这个贴心的技巧

    有10位网友表示赞同!

不离我

这个方法在查找数组元素时非常实用,但是一定要注意它只返回第一个匹配元素的索引,如果想要找到所有匹配元素,需要结合其他方法使用

    有19位网友表示赞同!

陌颜

这篇文章简直就是我的救命稻草!之前一直在苦恼这个问题,看了你们的回复才明白原来这么简单!

    有12位网友表示赞同!

笑傲苍穹

indexOf() 方法确实很方便,但是如果想查找比indexOf() 更智能的元素定位方式,可以选择 splice() 或 filter() 方法

    有15位网友表示赞同!

没过试用期的爱~

博文讲解很清晰简洁,易于理解。感谢作者分享!

    有17位网友表示赞同!

猜你喜欢