引用对象(在数组中)

时间:2015-08-30 10:32:01

标签: javascript

我在javascript中有一个像这样的对象数组:

var events = 
[
{
 id: 'a',
 title: 'Event 1 title'
},
{
 id: 'b',
 title: 'Event 2 title'
}
];

为了引用事件b,我必须知道事件b的索引,我可以通过循环遍历数组并在事件的id与b匹配时检查事件的索引是什么。 / p>

当我知道事件的id属性时,是否有更简单的方法来引用事件b?

4 个答案:

答案 0 :(得分:2)

  

为了引用事件b,我必须知道事件b的索引

不一定。您可以使用Array.filter获取所需的对象,而无需了解它的索引。

var obj = events.filter(function(obj){
   return obj.id == "b";
})[0]

或者您也可以使用ES6中新增的Array.prototype.find

var obj = events.find((obj) => obj.id == "b");

答案 1 :(得分:1)

,不要将其存储为列表,将其存储为对象:

var events = {'a': 'Event title 1', 'b': 'Event title 2'}

然后像这样使用它:

events['a']

答案 2 :(得分:1)

您可以在事件列表中的对象的ID上构建索引:

> var events = [{
...     id: 'a',
...     title: 'Event 1 title'
... }, {
...     id: 'b',
...     title: 'Event 2 title'
... }];
> var index = {};
> events.forEach(function(v, i) { index[v.id] = i; });
> index
{ a: 0, b: 1 }
> events[index['b']]
{ id: 'b', title: 'Event 2 title' }

答案 3 :(得分:0)

检查jQuery documentation以获取此方法。

var result = $.grep(myArray, function(e){ return e.id == id; });