#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]);
Просто Наслаждайтесь кодированием!