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);