okay, here is what you want to do:
first write a loop that goes through your array, and for each different *type*, you save those that have the same name, then you call a second function that will check the highest between them.
secondly, this other function works like this:
{
var array = the array you just got from the first function;
var highest= 0;
var index_highest = 0;
for (i=0; i<=highest;i++)
if (array[i]['value']>highest) {
highest = array[i];
index_highest = i;
}
}