Как сохранить результат переменной в цикле

#javascript #arrays #function #variables

#javascript #массивы #функция #переменные

Вопрос:

 function priceDiscountSeries(originalPrice, discountSeries) {
    let netPrice = originalPrice;
    for (let i = 0; i < discountSeries.length; i  ) {
        netPrice = originalPrice * (1 - discountSeries[i]);
    }
    return netPrice;
}

console.log(priceDiscountSeries(94_500, [0.40, 0.10, 0.05]));
  

Что я пытаюсь сделать, так это сохранить результат в переменной, а затем использовать эту переменную для возврата другого результата, который снова сохраняется в самой переменной.

Он находит результат цены в серии скидок. Предполагается, что он возвращает 48 478,5 в качестве чистой цены, но вместо этого возвращает

 [Running] node "c:UsersneoxeDesktopdisCompute.js"
89775

[Done] exited with code=0 in 0.539 seconds
  

Ответ №1:

Просто замените:

 netPrice = originalPrice * (1 - discountSeries[i]);
  

с помощью

 netPrice *= (1 - discountSeries[i]);
  

Должен дать вам результат, который вы ищете.

Однако вы можете использовать reduce для выполнения той же операции, используя простую функцию стрелки для скидки цены:

 const priceDiscount = (price, discount) => price * (1 - discount);

const discountSeries = [0.40, 0.10, 0.05];

console.log(discountSeries.reduce(priceDiscount, 94_500));  

Ответ №2:

сделайте это, чтобы сохранить ваше значение в netPrice, или вы можете создать массив для его сохранения netPrice = netPrice originalPrice * (1 — discountSeries[i]); array[i]=originalPrice * (1 — discountSeries[i]);

Просто Наслаждайтесь кодированием!