JSFiddle - React, Tailwind, and code Playground
by Danish Farman
HTML
<div id="message">
</div>
JavaScript
function removeDuplicateUsingFilter(arr){
let unique_array = arr.filter(function(elem, index, self) {
return index == self.indexOf(elem);
});
return unique_array
}
function groupBy(list, keyGetter) {
const map = new Map();
list.forEach((item) => {
const key = keyGetter(item);
if (!map.has(key)) {
map.set(key, [item]);
} else {
map.get(key).push(item);
}
});
return map;
}
const pets = [{
type: "Dog",
name: "Spot",
amt: 222,
DeptRate: 2
},
{
type: "Cat",
name: "Tiger",
amt: 2221,
DeptRate: 2
},
{
type: "Dog",
name: "Rover",
amt: 122,
DeptRate: 11
},
{
type: "Cat",
name: "Leo",
amt: 123,
DeptRate: 3
},
{
type: "Cat",
name: "Leo",
amt: 123,
DeptRate: 3
}
];
const grouped = groupBy(pets, pet => pet.DeptRate);
document.getElementById("message").innerText += JSON.stringify(grouped.get(2));
var tamt = 0;
var deptRateArr = [];
grouped.get(3).forEach(function(i, j) {
tamt += i.amt;
deptRateArr.push(i.DeptRate);
});
var uniqueDeptRate = removeDuplicateUsingFilter(deptRateArr);
document.getElementById("message").innerText += " \n Total Amount at Dept Rate " + uniqueDeptRate[0] + "%: " + tamt;