首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >对象数组中的indexOf方法?

对象数组中的indexOf方法?
EN

Stack Overflow用户
提问于 2011-12-29 20:59:01
回答 23查看 721.3K关注 0票数 631

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

想象一下这样的场景:

var hello = {
    hello: 'world',
    foo: 'bar'
};
var qaz = {
    hello: 'stevie',
    foo: 'baz'
}

var myArray = [];
myArray.push(hello,qaz);

现在我想让indexOf对象的hello属性为'stevie',在本例中,该对象将为1

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

EN

回答 23

Stack Overflow用户

回答已采纳

发布于 2013-04-15 14:25:03

我认为您可以使用map函数在一行中解决它:

pos = myArray.map(function(e) { return e.hello; }).indexOf('stevie');
票数 1.2K
EN

Stack Overflow用户

发布于 2016-07-22 09:46:14

在ES2015中,这非常简单:

myArray.map(x => x.hello).indexOf('stevie')

或者,对于较大的阵列,可能具有更好的性能:

myArray.findIndex(x => x.hello === 'stevie')
票数 147
EN

Stack Overflow用户

发布于 2011-12-29 21:03:32

var idx = myArray.reduce( function( cur, val, index ){

    if( val.hello === "stevie" && cur === -1 ) {
        return index;
    }
    return cur;

}, -1 );
票数 24
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8668174

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档