Неправильное увеличение массива
Есть код, записывающий данные из базы данных (переменная data.output[i] берется из базы данных) в массив productcarditems
let productcarditems = [];
let productcardobject = {};
let checkMemory;
for (let i = 0; i < data.result.countrecords; i++) {
productcardobject["imagepath"] = data.output[i]['imagepath'];
console.log('Путь к рисунку ' + productcardobject["imagepath"]);
productcardobject["monoblockname"] = data.output[i]['monoblockname'];
productcardobject["color"] = data.output[i]['color'];
productcardobject["Диагональ"] = data.output[i]['screendiagonal'];
productcardobject["разрешение"] = data.output[i]['resolution'];
productcardobject["Тип процессора"] = data.output[i]['cputype'];
productcardobject["Частота процессора"] = data.output[i]['frequency'];
productcardobject["Оперативная память (RAM)"] = data.output[i]['ramsize'];
productcardobject["Графический контроллер"] = data.output[i]['videocard'];
if (data.output[i]['memorytype'] == 'SSD') {
productcardobject["Объем SSD"] = data.output[i]['sizememorydata'];
checkMemory = 'SSD';
} else if (data.output[i]['memorytype'] == 'HDD') {
productcardobject["Объем HDD"] = data.output[i]['sizememorydata'];
checkMemory = 'HDD';
};
productcardobject["GoodsPrice"] = data.output[i]['price'];
productcarditems.splice(i, 0, productcardobject);
console.log('productcarditems[i]');
console.log(productcarditems[i]);
/*
console.log('After productcarditems[i]');
console.log(productcardobject);
*/
}
console.log('productcarditems output');
console.log(productcarditems);
В результате массив productcarditems записывается 17 раз последний элемент массива, а должно быть 17 различных объектов productcardobject из базы данных.
Ответы (1 шт):
Автор решения: Igor
→ Ссылка
// let productcardobject = {};
...
for (let i = 0; i < data.result.countrecords; i++) {
let productcardobject = {};
...