Я пытаюсь рассчитать количество рулонов материала, которое у меня может быть, если я нарежу рулон большего размера на рулоны меньшего размера.
Например, если у меня есть 1 рулон длиной 25 м, я мог бы разрезатьэто в 1 рулон 15 м, 2 рулона 10 м и 5 рулонов 5 м.Поэтому я бы хотел, чтобы мои количества выглядели так:
Теперь у меня также может быть количество таких штук, как 1 рулон 25 м, 1 рулон 15 м и 1 рулон 5 м.Тогда это будет выглядеть так:
Я настроил первый цикл, чтобы получить правильное количество и количество материала на основе того, что уже есть в их корзине.Я застрял в следующей части.
Редактировать: ответ ниже в конечном итоге позволил мне придумать это:
calculateQuantities() {
let quantities = {};
for (let i = 0; i < this.sizes.length; i++) {
const size = this.sizes[i];
for (let j = 0; j < this.cart.items.length; j++) {
const item = this.cart.items[j];
if (item.sizeId === size.id) {
size.quantity -= item.quantity;
}
}
size.actualQuantity = size.quantity;
let counter = 0;
for (let j = 0; j < this.sizes.length; j++) {
const otherSize = this.sizes[j];
counter += Math.floor(otherSize.length * otherSize.quantity / size.length)
}
console.log(`${counter} ${size.length}m`);
quantities[size.length] = counter;
}
for (let i = 0; i < this.sizes.length; i++) {
this.sizes[i].quantity = quantities[this.sizes[i].length];
}
}