vicodin
@vicodin
Имею некоторый опыт

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

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

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

Если хранить все в объекте, а-ля var names = {1: "Антон", 2: "Маша"}, не выходит, потому что нельзя обратиться к names.1
  • Вопрос задан
  • 2476 просмотров
Решения вопроса 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'];
В объекте все свойства, это строки. По этому нельзя использовать объекты в качестве ключей.
Если объекты специально не наделить хешем, то есть большая вероятность, что два разных объекта будут приняты за один.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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