【发布时间】:2012-01-29 21:21:35
【问题描述】:
获取包含对象的数组的索引的最佳方法是什么?
想象一下这个场景:
var hello = {
hello: 'world',
foo: 'bar'
};
var qaz = {
hello: 'stevie',
foo: 'baz'
}
var myArray = [];
myArray.push(hello,qaz);
现在我想要indexOf 对象,其hello 属性为'stevie',在本例中为1。
我是 JavaScript 的新手,我不知道是否有简单的方法,或者我是否应该构建自己的函数来做到这一点。
【问题讨论】:
-
你想合并
hello和qaz这两个对象吗? -
不,我没有。我想要一个数组中的对象列表。
-
啊好吧!你想知道整个对象在数组中的位置,它有一个定义的属性。
-
我找到了一个非常简单的函数来解决这个 SO 答案的确切问题:
var elementPos = array.map(function(x) {return x.id; }).indexOf(idYourAreLookingFor); var objectFound = array[elementPos];[link] (stackoverflow.com/a/16100446/1937255) -
ES6 Array.indexOf 比公认的答案更好(如果 ES6 适合您) - 请参阅下面的完整示例
标签: javascript