[英]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'])
}
}
你可以在小提琴中找到這兩個例子
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.