Создать массив без пропусков
Нужен массив такого плана 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);