簡體   English   中英

Javascript 5中的某個字段如何得到JSON字段的總和?

[英]How to get a total sum of JSON field for a certain field in Javascript 5?

我有這個帶有字典的數組,我需要獲取每個代碼字段的總金額。 並且還按代碼字段排序。 我可以使用 HashMap 或 Python dict 輕松地做到這一點,但由於 Hashmap 在 JS5 中不存在,我不知道如何實現這一點。

[
  {
    "Amount":"14.00",
    "Date":"20200418",
    "Code":"151"
  },

  {
    "Amount":"5.73",
    "Date":"20200418",
    "Code":"167"
  },
  {
    "Amount":"2.00",
    "Date":"20200418",
    "Code":"151"
  }
  {
    "Amount":"3.00",
    "Date":"20200418",
    "Code":"120"
  },
]

所以結果應該是

120 - 3.00
151 - 16.00
167 - 5.73

使用 lodash 是很自然的:

_.mapValues(_.groupBy(array, 'Code'), data => _.sumBy(data, d => parseFloat(d['Amount'])))

如果您不能使用 lodash(您需要將其作為依賴項安裝),那么您可以在 vanilla js 中使用

var groupedBy = {}

var i, d, code
for (i = 0; i < array.length; i++) {
  d = array[i]
  code = d['Code']
  if (!(code in groupedBy)) {
    groupedBy[code] = parseFloat(d['Amount'])
  } else {
    groupedBy[code] = groupedBy[code] + parseFloat(d['Amount'])
  }
}

你可以在小提琴中找到這兩個例子

https://jsfiddle.net/s8951jb2/2/

暫無
暫無

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

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