@zlFast

Как узнать номер элемента массива?

Массив состоит из объектов, как узнать номер элемента массива в объекте которого id = 5?
Пример:
var arr = [{name:'Петя', id: 45},{name:'Петя', id: 123},{name:'Игорь', id: 6542},{name:'Коля', id: 5},{name:'Вася', id: 2}]
  • Вопрос задан
  • 5041 просмотр
Решения вопроса 3
might
@might
javascript developer
arr.map(function (el, index) {
    if(el.id === 5) {
        console.log(index)
    }
});
Ответ написан
sergiks
@sergiks Куратор тега JavaScript
♬♬
var arr = [{name:'Петя', id: 45},{name:'Петя', id: 123},{name:'Игорь', id: 6542},{name:'Коля', id: 5},{name:'Вася', id: 2}]
var index, search = 5;
for( var i=0;i<arr.length;i++) if( arr[i].id === search) { index = i; break; }

// В переменной index либо по-прежнему undefined, либо индекс искомого элемента
console.log( "Индекс " + (index === undefined ? 'не найден' : index));
// Индекс 3


Upd. не самый удачный вариант Максим можно улучшить через .some():
var found, search = 5;
arr.some(function (el, index) {
  if( el.id !== search) return;
  found = index;
  return true;
});
Ответ написан
Stalker_RED
@Stalker_RED
В ES6 специально для таких случаев есть Array.findIndex()
var x = arr.findIndex(e=>e.id == 5)
В IE и опере findIndex() пока не работает, но есть полифилл.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы