簡體   English   中英

for循環內的arrays之和

[英]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 循環用於數組?

在獲得完整解決方案之前的一個小介紹:

總和

使用Array.prototype.reduce()

 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>

按 data-* 屬性求和配對

對於您的特定問題或通過某些 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM