Здравствуйте, как можно изменить значение переменной через массив в объекте. Узнал что можно через квадратные скобки, но по факту не работает
<script>
let propName = '20';
const info = {
10: {
5: {
[propName]: '50',
},
},
};
console.log(propName); // 20
</script>
Есть огромный массив объекта, вот кусочек:
var cena_rozALL = 0;
var roznicaIBP = cena_rozALL.toString().replace(/(\d)(?=(\d{3})+$)/g, '$1 ');
var silverIBP = Math.ceil(cena_rozALL - cena_rozALL * proc_sil).toString().replace(/(\d)(?=(\d{3})+$)/g, '$1 ');
var goldIBP = Math.ceil(cena_rozALL - cena_rozALL * proc_gold).toString().replace(/(\d)(?=(\d{3})+$)/g, '$1 ');
var platinumIBP = Math.ceil(cena_rozALL - cena_rozALL * proc_plat).toString().replace(/(\d)(?=(\d{3})+$)/g, '$1 ');
var silver_skIBP = Math.ceil(cena_rozALL * proc_sil).toString().replace(/(\d)(?=(\d{3})+$)/g, '$1 ');
var gold_skIBP = Math.ceil(cena_rozALL * proc_gold).toString().replace(/(\d)(?=(\d{3})+$)/g, '$1 ');
var platinum_skIBP = Math.ceil(cena_rozALL * proc_plat).toString().replace(/(\d)(?=(\d{3})+$)/g, '$1 ');
const info = {
10: {
5: {
title: titleIbp10,
description: descrIbp10,
silka_ibp: ssilkaIbp1,
kartinka_ibp: kartinkIbp1,
title2: titleAKB_7,
description2: descrAKB_7,
mnoj: '30 x',
silka_akb: silka_akb_7,
kartinka_akb: kartinka_akb_7,
[cena_rozALL]: cena_roz5_10,
},
10: {
title: titleIbp10,
description: descrIbp10,
silka_ibp: ssilkaIbp1,
kartinka_ibp: kartinkIbp1,
title2: titleAKB_7,
description2: descrAKB_7,
mnoj: '30 x',
silka_akb: silka_akb_7,
kartinka_akb: kartinka_akb_7,
[cena_rozALL]: cena_roz10_10,
}, .....
} ....
};
cena_rozALL = это значение которое будет разное для всех (а тут 720 вариаций). Это является базовой ценой товара. А те расчеты это скидки одного и того же товара. И взависимости от цены, меняются все эти расчеты скидок и т.д.
И другой вариант, рабочий
const info = {
10: {
5: {
title: titleIbp10,
description: descrIbp10,
silka_ibp: ssilkaIbp1,
kartinka_ibp: kartinkIbp1,
title2: titleAKB_7,
description2: descrAKB_7,
mnoj: '30 x',
silka_akb: silka_akb_7,
kartinka_akb: kartinka_akb_7,
roznica: cena_roz5_10.toString().replace(/(\d)(?=(\d{3})+$)/g, '$1 '),
silver: Math.ceil(cena_roz5_10 - cena_roz5_10 * proc_sil).toString().replace(/(\d)(?=(\d{3})+$)/g, '$1 '),
gold: Math.ceil(cena_roz5_10 - cena_roz5_10 * proc_gold).toString().replace(/(\d)(?=(\d{3})+$)/g, '$1 '),
platinum: Math.ceil(cena_roz5_10 - cena_roz5_10 * proc_plat).toString().replace(/(\d)(?=(\d{3})+$)/g, '$1 '),
silver_sk: Math.ceil(cena_roz5_10 * proc_sil).toString().replace(/(\d)(?=(\d{3})+$)/g, '$1 '),
gold_sk: Math.ceil(cena_roz5_10 * proc_gold).toString().replace(/(\d)(?=(\d{3})+$)/g, '$1 '),
platinum_sk: Math.ceil(cena_roz5_10 * proc_plat).toString().replace(/(\d)(?=(\d{3})+$)/g, '$1 '),
},
10: {
title: titleIbp10,
description: descrIbp10,
silka_ibp: ssilkaIbp1,
kartinka_ibp: kartinkIbp1,
title2: titleAKB_7,
description2: descrAKB_7,
mnoj: '30 x',
silka_akb: silka_akb_7,
kartinka_akb: kartinka_akb_7,
roznica: cena_roz10_10.toString().replace(/(\d)(?=(\d{3})+$)/g, '$1 '),
silver: Math.ceil(cena_roz10_10 - cena_roz10_10 * proc_sil).toString().replace(/(\d)(?=(\d{3})+$)/g, '$1 '),
gold: Math.ceil(cena_roz10_10 - cena_roz10_10 * proc_gold).toString().replace(/(\d)(?=(\d{3})+$)/g, '$1 '),
platinum: Math.ceil(cena_roz10_10 - cena_roz10_10 * proc_plat).toString().replace(/(\d)(?=(\d{3})+$)/g, '$1 '),
silver_sk: Math.ceil(cena_roz10_10 * proc_sil).toString().replace(/(\d)(?=(\d{3})+$)/g, '$1 '),
gold_sk: Math.ceil(cena_roz10_10 * proc_gold).toString().replace(/(\d)(?=(\d{3})+$)/g, '$1 '),
platinum_sk: Math.ceil(cena_roz10_10 * proc_plat).toString().replace(/(\d)(?=(\d{3})+$)/g, '$1 '),
}, .....
} ....
};
Тоесть в каждой вариации нужно прописывать этот кусок кода