[英]Sum of arrays inside for loop
我試圖在 for 循環中獲取每個數組的總和。 我的代碼現在是這樣的
for (var i = 1; i < 6; i++) {
(function(i) {
if ($(".brand_name-"+i).length > 0 ) {
Array_new = parseInt ($(".price-" + i).text());
someArray = $.trim (Array_new);
var total = 0;
for (var k = 0; k < someArray.length; k++) {
total += someArray[k] << 0;
}
console.log(total);
}
和 HTML 版本的元素是
<strong class="product_price_send price-3">88.87</strong>
<strong class="product_price_send price-5">8.78</strong>
<strong class="product_price_send price-5">48.78</strong>
問題是 - 它沒有顯示元素的總和。 也許我需要一個 for 循環內的 for 循環用於數組?
在獲得完整解決方案之前的一個小介紹:
const ELS_price = document.querySelectorAll(".product_price_send"); // const ELS_prod_price = $(".product_price_send").get(); // if you use jQuery const sum = [...ELS_price ].reduce((tot, el) => { tot += Number(el.textContent.trim()); return tot; }, 0); console.log(sum)
<strong class="product_price_send price-3">88.87</strong> <strong class="product_price_send price-5">8.78</strong> <strong class="product_price_send price-5">48.78</strong>
對於您的特定問題或通過某些 integer 后綴將品牌與價格配對。
您可以做的最好的事情是使用data-*
屬性配對 integer ID,並使用與上述類似的代碼:
$("[data-brand]").each(function() { const id = $(this).data("brand"); const ELS_price = document.querySelectorAll(`[data-price="${id}"]`); const sum = [...ELS_price].reduce((tot, el) => { tot += Number(el.textContent.trim()); return tot; }, 0); console.log(`${this.textContent} Sum: ${sum.toFixed(2)}£`) });
<div data-brand="3">Foobar</div> <div data-brand="5">Loremis</div> <strong class="product_price_send" data-price="3">88.87</strong> <strong class="product_price_send" data-price="5">8.78</strong> <strong class="product_price_send" data-price="5">48.78</strong> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.