В массиве объектов самый быстрый способ найти индекс объекта, атрибуты которого соответствуют поисковому запросу.
Я немного занимался серфингом, пытаясь найти эффективный способ сделать это, но ничего не получил. У меня есть массив объектов, который выглядит следующим образом:
<code>array[i].id = some number; array[i].name = some name; </code>
То, что я хочу сделать, это найти индексы объектов, где идентификатор равен, например, один из 0,1,2,3 или 4. Я полагаю, я мог бы просто сделать что-то вроде:
<code>var indexes = []; for(i=0; i<array.length; i++) { (array[i].id === 0) ? { indexes[0] = i } (array[i].id === 1) ? { indexes[1] = i } (array[i].id === 2) ? { indexes[2] = i } (array[i].id === 3) ? { indexes[3] = i } (array[i].id === 4) ? { indexes[4] = i } } </code>
Хотя это будет работать, это выглядит довольно дорого и медленно (не говоря уже об уродливости), особенно если array.length может быть большим. Любые идеи о том, как украсить это немного? Я думал о том, чтобы как-то использовать array.indexOf, но не вижу, как форсировать синтаксис. это
<code>array.indexOf(this.id === 0); </code>
например, возвращает undefined, как это должно быть. Заранее спасибо!