JSFiddle - React, Tailwind, and code Playground

by Khris Roberts

HTML

<ul id="classes">

</ul>

JavaScript

var feedData="Algebra (2.50 hours), Algebra (4.50 hours), Algebra (2.50 hours), Algebra (2.50 hours), Algebra (3.50 hours), Algebra (2.50 hours), Algebra (6.50 hours), Algebra (2.50 hours), Algebra (2.50 hours), Athletic (Attendance) (5.50 hours), Science (2.25 hours), Athletic (Attendance) (6.50 hours), Athletic (Attendance) (2.50 hours), Reading (2.50 hours), Athletic (Attendance) (2.50 hours), History (2.50 hours), History (6.50 hours), Athletic (Attendance) (2.50 hours)";

function parseFeedData(data){
	var returnValue = "";
  var classes = new Object();
  //var classNames = new Array();
  var splitItems = data.split(', ');
  
  $(splitItems).each(function(index,value){
  	var className = value.substring(0,value.lastIndexOf('(')).trim();
    var classHours = value.substring(value.lastIndexOf('('),value.length).trim().split(' ')[0].substring(1);
  	
    if (classes[className] == null){
    	classes[className] = new Object();
      classes[className].name = className;
    }
    
    if (classes[className].hours == null){
	   	classes[className].hours = 0;
    }
    
    if (parseFloat(classHours) != NaN){
    	classes[className].hours += parseFloat(classHours);
    }
  });
      for (var i in classes){
        $('#classes').append("<li>" + classes[i].name  + ": " + classes[i].hours + " hours</li>")
        returnValue += classes[i].name + classes[i].hours;
    }
}

$(document).ready(function(){
	parseFeedData(feedData);
});