获取包含对象的数组的索引的最佳方法是什么?
想象一下这样的场景:
var hello = {
hello: 'world',
foo: 'bar'
};
var qaz = {
hello: 'stevie',
foo: 'baz'
}
var myArray = [];
myArray.push(hello,qaz);
现在我想让indexOf
对象的hello
属性为'stevie'
,在本例中,该对象将为1
。
我是JavaScript的新手,我不知道是否有一个简单的方法,或者我是否应该构建自己的函数来做到这一点。
发布于 2013-04-15 14:25:03
我认为您可以使用map函数在一行中解决它:
pos = myArray.map(function(e) { return e.hello; }).indexOf('stevie');
发布于 2016-07-22 09:46:14
在ES2015中,这非常简单:
myArray.map(x => x.hello).indexOf('stevie')
或者,对于较大的阵列,可能具有更好的性能:
myArray.findIndex(x => x.hello === 'stevie')
发布于 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 );
https://stackoverflow.com/questions/8668174
复制相似问题