Код интерпретируется (оценивается) последовательно.
Когда вы пишете:
let itemCount = sideCount + foodCount;
Вы фактически назначаете значение sideCount + foodCount для itemCount. В настоящий момент sideCount и foodCount имеют значение «0», следовательно, itemCount равен «0».
Вы вызываете функцию pizzaOrder и меняете foodCount (внутри этой функции), что не заставит javascript переоценивать еще раз добавление упомянутой строки (пусть itemCount = sideCount + foodCount).
Буквально, функция pizzaOrder вообще не влияет на переменную "itemCount".
Одним из решений проблемы было бы добавить строку:
«itemCount = sideCount + mealCount» внутри функции pizzaOrder, в частности под строкой: «mealCount + = количество;».
Итак, ваш код будет выглядеть так:
const pizzaOrder = ({size, crustType, topping, quantity}) => {
quantity = Math.round(parseInt(quantity));
mealCount += quantity;
totalCount = mealCount + sideCount;
if (topping === "") {
console.log(`Order: ${quantity} ${size.toTitleCase()} ${crustType.toLowerCase()} crust plain cheese pizza`);
} else {
console.log(`Order: ${quantity} ${size.toTitleCase()} ${crustType.toLowerCase()} crust ${topping} pizza`);
}
console.log(`Meal Count after ordering ${quantity} pizzas: ${mealCount}`);
console.log(`Current item count: ${itemCount}`);
};