Как назвать свойство в объекте?
Я вижу три варианта:
1. В js может быть "разреженный" массив, правда, с ним будет не так удобно работать (обход массива будет другой, например). x = []
x[5] = {...}
x[10] = {...}
Ну и, естественно, только целочисленные id.
2. Заменить массив на объект.names = {
1: {...}, 2: {..}
}
обратиться можно не через names.1, а через names[1].
3. Написать функцию поиска по массиву, которая будет обходить массив и искать в нем объект с нужным id.
Все зависит от ваших целей
names['id'];
В объекте все свойства, это строки. По этому нельзя использовать объекты в качестве ключей.
Если объекты специально не наделить хешем, то есть большая вероятность, что два разных объекта будут приняты за один.