I am trying to figure out how to calculate a 15% discount for each item in an array along with the total amount. I have already managed to calculate and display the total discount for all items using the reduce() method, but I'm stuck on how to calculate the discount for each item separately with reduce(). Is there a workaround for this or should I consider a different approach?
function getDomNodesBySelector(selector) {
return Array.from(document.querySelectorAll(selector));
}
document.querySelector('.total__button').addEventListener('click', applyDiscount);
function applyDiscount() {
let items = getDomNodesBySelector(".price-value");
let numDiscount = 15;
let totalValue = items.reduce((acc, cur) => acc + (1 - (numDiscount / 100)) * cur.innerText, 0);
document.querySelector(".total-price-value").innerText = totalValue;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Shopping Cart</title>
<link rel="stylesheet" href="https://code.s3.yandex.net/web-code/entrance-test/lesson-2/task-2/fonts.css">
<link rel="stylesheet" href="style.css">
</head>
<body class="page">
<h1 class="page__title">Cart</h1>
<section class="chosen-items">
<article class="card">
<img src="https://code.s3.yandex.net/web-code/entrance-test/jacket.png" alt="" class="card__image">
<div class="card__description">
<h2 class="card__title">Have A Good Time x FA Two Tone Jacket</h2>
<p class="card__text">Color: Green/Orange</p>
<p class="card__text">Size: M</p>
<p class="card__text">Quantity: 1</p>
</div>
<div class="card__price">
<p class="card__rub price-default"><span class="price-value">15890</span> rub.</p>
</div>
</article>
<article class="card">
<img src="https://code.s3.yandex.net/web-code/entrance-test/vans.png" alt="" class="card__image">
<div class="card__description">
<h2 class="card__title">Vans Old Skool Sneakers</h2>
<p class="card__text">Color: Black/White</p>
<p class="card__text">Size: 43</p>
<p class="card__text">Quantity: 1</p>
</div>
<div class="card__price">
<p class="card__rub price-default"><span class="price-value">6390</span> rub.</p>
</div>
</article>
<article class="card">
<img src="https://code.s3.yandex.net/web-code/entrance-test/pop-DRS.png" alt="" class="card__image">
<div class="card__description">
<h2 class="card__title">Pop DRS Denim Stonewashed Jeans</h2>
<p class="card__text">Color: Blue</p>
<p class="card__text">Size: S</p>
<p class="card__text">Quantity: 1</p>
</div>
<div class="card__price">
<p class="card__rub price-default"><span class="price-value">11290</span> rub.</p>
</div>
</article>
<article class="card">
<img src="https://code.s3.yandex.net/web-code/entrance-test/by-parra.png" alt="" class="card__image">
<div class="card__description">
<h2 class="card__title">By Parra Belt</h2>
<p class="card__text">Color: Multi</p>
<p class="card__text">Size: S</p>
<p class="card__text">Quantity: 1</p>
</div>
<div class="card__price">
<p class="card__rub price-default"><span class="price-value">8550</span> rub.</p>
</div>
</article>
<article class="card">
<img src="https://code.s3.yandex.net/web-code/entrance-test/board.png" alt="" class="card__image">
<div class="card__description">
<h2 class="card__title">Fucking Awesome Drawings 2 Pink Skateboard</h2>
<p class="card__text">Color: Fluorescent Pink</p>
<p class="card__text">Size: One Size</p>
<p class="card__text">Quantity: 1</p>
</div>
<div class="card__price">
<p class="card__rub price-default"><span class="price-value">4790</span> rub.</p>
</div>
</article>
</section>
<section class="total page__total">
<button class="total__button">Apply 15% Discount Coupon</button>
<div class="total__prices">
<h2 class="total__title">Total:</h2>
<p class="total__rub price-default"><span class="total-price-value">46910</span> rub.</p>
</div>
</section>
<script src="./task.js"></script>
</body>
</html>