簡體   English   中英

如何總結我在 forEach 循環中生成的變量中的數字列表

[英]How can I sum up a list of numbers inside a variable which I generated inside a forEach loop

我為每個循環創建了一個從 JSON 數組訪問數字的循環,該數組將是動態的並且永遠變化,因此我將數字隔離在一個變量中(變量在循環內)。 我的問題是:我如何總結變量中的數字。

我嘗試在循環內執行 for 循環,但沒有奏效。

它看起來有點像這樣:

 const arrayhours = Array.from(json_obj);
 arrayhours.forEach(e=>{ 
              const hours = parseFloat(e.hoursWorked);

console.log(hours); //returns for example 1.25 9 5 8 7 as seperate objects.
});

控制台日志的圖像

您可以使用Array.reduce()來獲取數組中的數字總和。

const arrayhours = Array.from(json_obj);
arrayhours.forEach(e=>{ 
  const hours = parseFloat(e.hoursWorked);
  console.log(hours); //returns for example 1.25 9 5 8 7 as seperate objects.
});
const sum = arrayhours.reduce((acc, val) => acc + parseFloat(val.hoursWorked), 0)

在循環之前使用let hours = 0初始化變量,然后使用+=添加一些東西(而不是= )來分配一些東西。

最后將console.log移出循環:

const arrayhours = Array.from(json_obj);
let hours = 0;
arrayhours.forEach(e => { 
  const hours += parseFloat(e.hoursWorked);
});
console.log(hours);

const sum = arrayhours.reduce((acc, curr) => acc + parseFloat(curr.hoursWorked, 10), 0)

在評論中,AZ_ 正在使用+c.hoursWorked ,這是將字符串轉換(如果可能)為 Int 的 JS 技巧。 這是一種非常糟糕的方式,因為不是真正可讀的。 最好使用 parseInt 或 parseFloat 函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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