Вывести индекс элемента из массива с объектами

Рейтинг: 0Ответов: 2Опубликовано: 05.05.2015

Доброго времени суток.

Есть массив:

var fruits = [{type: 'Цитрус', name: 'Апельсин'},
             {type: 'Цитрус', name: 'Лимон'},
             {type: 'Семечковые', name: 'Яблоко'},
             {type: 'Косточковые', name: 'Абрикос'},
             {type: 'Семечковые', name: 'Груша'},
             ];

var search = 'Лимон';

Из этого массива мне нужно получить индекс, например, Лимона. Как осуществить поиск по этому массиву?

Array.prototype.indexOf() я так понял не подходит?

Ответы

▲ 2Принят

Эм.

var i;
for (i = 0; i < fruits.length; i++)
    if (fruits[i].name == search) 
        alert(i);
▲ 1

Можно просто через цикл

function findElement(arr, sing) {
   for(var i = 0; i < arr.length; i++) {
      var element = arr[i];
      for(prop in element ) { if(element[prop] == sing) return i}
   }
   return -1; // если ничего не нашли
}