Создать массив без пропусков

Нужен массив такого плана option[product_option_id] = product_option_value_id;

Пытался сделать вот так:

var p_option = [];
p_option[product_option_id] = product_option_value_id;

Но в таком случае если product_option_id = 229, то создается еще 228 пустых значений

пример

Как сделать что бы не создавались эти пустые значения массива, а только один тот что нужен?


Ответы (2 шт):

Автор решения: stckvrw

Для создания ассоциативного массива используйте фигурные скобки {} а не квадратные []:

let p_option = {};
let product_option_id = 229;
let product_option_value_id = 'Какое то значение';
p_option[product_option_id] = product_option_value_id;
→ Ссылка
Автор решения: EzioMercer

Обычные объекты вам намного больше подойдут, но если хочется именно работать как с массивом, то это можно имитировать с помощью Symbol.iterator

const myObj = {
  [Symbol.iterator]: function*() {
    for (const value of Object.values(this)) {
      yield value;
    }
  }
}

myObj[1] = '1a';
myObj[10] = '10b';
myObj[100] = '100c';

console.log('myObj:', myObj);

for (const value of myObj) {
  console.log('From for of loop', value);
}

const [a, b, c] = myObj;

console.log('After destructuring', a, b, c);

→ Ссылка