JSFiddle - React, Tailwind, and code Playground
by ham ism
JavaScript
var arr = '[{"Id":"1","DR":"20","CR":"10"}, {"Id":"1","DR":"30","CR":"40"}, {"Id":"2","DR":"20","CR":"10"}, {"Id":"1","DR":"40","CR":"50"} ]';
var idsArray = [];
var length = 0;
var newJsonData = [];
var tmpObj;
function objNumber(str){
var length = 0;
str.replace(/\{(.+?)\}/g,function(match){
length++; console.log('1');
});
return length;
}
length = objNumber(arr);
var jsonData = window.JSON.parse(arr);
groupedArray = [];
for(var i=0;i<length;i++){
// 1: grab all the ids and put them in the idsArray
if(idsArray.indexOf(jsonData[i].Id) == -1){
// idsString +='{"id":"'+jsonData[i].Id+'"}'});
idsArray.push(jsonData[i].Id);
}
}
for(var i=0;i<idsArray.length;i++){
tmpObj = {};
tmpObj.Id = idsArray[i];
tmpObj.DR = 0;
tmpObj.CR = 0;
newJsonData.push(tmpObj);
}
for(var i=0;i<idsArray.length ;i++){
for(var j=0;j<length;j++){
if(jsonData[j].Id == idsArray[i]){
newJsonData[i].DR += Number(jsonData[j].DR);
newJsonData[i].CR += Number(jsonData[j].CR);
}
}
}
console.log(idsArray);
console.log(newJsonData);