Ответ 1
Поскольку у вас уже есть jQuery, вы можете использовать $.grep
:
Находит элементы массива, которые удовлетворяют функции фильтра. Исходный массив не влияет.
Так что-то вроде этого:
var matches = $.grep(ObjectsList, function(e) { return e.id == id });
который оставит вам массив совпадающих записей из ObjectsList
в массиве matches
. Вышеприведенное предполагает, что ObjectsList
имеет такую структуру:
[
{ id: ... },
{ id: ... },
...
]
Если вы знаете, что есть только одно совпадение или вам нужно только первое, вы можете сделать это следующим образом:
for(var i = 0, m = null; i < ObjectsList.length; ++i) {
if(ObjectsList[i].id != wanted_id)
continue;
m = a[i];
break;
}
// m is now either null or the one you want
Существует много вариаций в подходе цикла for
, и многие люди будут махать пальцем мне, потому что они думают, что continue
является плохим словом; если вам не нравится continue
, тогда вы можете сделать это следующим образом:
for(var i = 0, m = null; i < ObjectsList.length; ++i) {
if(ObjectsList[i].id == wanted_id) {
m = ObjectsList[i];
break;
}
}