Я пишу расширение Google Chrome в JavaScript, и я хочу использовать массив для хранения кучи объектов, но я хочу, чтобы индексы были конкретными номерами, которые не являются последовательными идентификаторами.
(Это потому, что мне нужно иметь возможность эффективно искать значения позже, используя идентификационный номер, который поступает из другого источника вне моего контроля.)
Например:
var myObjects = [] ;
myObjects[471] = {foo: "bar"} ;
myObjects[3119] = {hello: "goodbye"}
Когда я делаю console.log(myObjects)
, на консоли я вижу весь распечатанный массив, причем все тысячи "отсутствующих" индексов показывают undefined
.
Мой вопрос: это имеет значение? Разве это тратит впустую память?
И даже если он не потеряет память, конечно, всякий раз, когда я перебираю массив, он отбрасывает процессор, если мне нужно вручную пропустить все недостающее значение?
Я попытался использовать объект вместо массива, но, похоже, вы не можете использовать числа в качестве ключей объектов. Я надеюсь на лучший способ достичь этого?