@zlFast

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

Массив состоит из объектов, как узнать номер элемента массива в объекте которого id = 5?
Пример:
var arr = [{name:'Петя', id: 45},{name:'Петя', id: 123},{name:'Игорь', id: 6542},{name:'Коля', id: 5},{name:'Вася', id: 2}]
  • Вопрос задан
  • 1824 просмотра
Решения вопроса 1
might
@might
javascript developer
arr.map(function (el, index) {
    if(el.id === 5) {
        console.log(index)
    }
});
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
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.find()
var x = arr.find(e=>e.id == 5)
В IE и опере find() пока не работает, но есть полифилл.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Admitad Projects Москва
от 130 000 до 200 000 ₽
Fundraise Up Санкт-Петербург
от 2 500 до 3 500 $
25 мая 2020, в 19:34
8000 руб./за проект
25 мая 2020, в 19:25
3000 руб./за проект
25 мая 2020, в 19:19
1000 руб./за проект