Задать вопрос
vicodin
@vicodin
Имею некоторый опыт

Как назвать свойство в объекте?

Суть вопроса в том, что мне нужно сделать цикл, который в зависимости от айди будет выводить данные из объекта.

Грубо говоря, есть массив:
var names = [ 
    { id: 1, name: 'Филиппов А. В.' },
    { id: 2, name: 'Иванова А. М.' },
    { id: 3, name: 'Петров В. В.' }
  ];
как можно обратиться к любому из объектов массива не по индексу, а по айди?

Если хранить все в объекте, а-ля var names = {1: "Антон", 2: "Маша"}, не выходит, потому что нельзя обратиться к names.1
  • Вопрос задан
  • 2478 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Решения вопроса 1
hedint
@hedint
Senior front-end developer
Я вижу три варианта:
1. В js может быть "разреженный" массив, правда, с ним будет не так удобно работать (обход массива будет другой, например).
x = []
x[5] = {...}
x[10] = {...}

Ну и, естественно, только целочисленные id.
2. Заменить массив на объект.
names = {
1: {...}, 2: {..}
}

обратиться можно не через names.1, а через names[1].
3. Написать функцию поиска по массиву, которая будет обходить массив и искать в нем объект с нужным id.

Все зависит от ваших целей
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@vasIvas
names['id'];
В объекте все свойства, это строки. По этому нельзя использовать объекты в качестве ключей.
Если объекты специально не наделить хешем, то есть большая вероятность, что два разных объекта будут приняты за один.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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