Summe javascript-Objekt propertyA-Werte mit dem gleichen Objekt propertyB in array von Objekten

Wie sollte man ein javascript-array von Objekten, wie:

my objArr = [
{key:Mon Sep 23 2013 00:00:00 GMT-0400, val:42},
{key:Mon Sep 24 2013 00:00:00 GMT-0400, val:78},
{key:Mon Sep 25 2013 00:00:00 GMT-0400, val:23},
{key:Mon Sep 23 2013 00:00:00 GMT-0400, val:54}]

- und merge-doppelt vorhandene Schlüssel durch die Summe der Werte.
Um so etwas wie dieses:

my reducedObjArr = [
{key:Mon Sep 23 2013 00:00:00 GMT-0400, val:96},
{key:Mon Sep 24 2013 00:00:00 GMT-0400, val:78},
{key:Mon Sep 25 2013 00:00:00 GMT-0400, val:23}]

Habe ich versucht Durchlaufen und hinzufügen, um ein neues array, aber das hat nicht funktioniert:

var reducedObjArr = [];
var item = null, key = null;
for(var i=0; i<objArr.length; i++) {
   item=objArr[i];
   key = Object.keys(item)[0];
   item=item[key];

   if(!result[key]){
       result[key] = item;
   }else{
       result[key] += item;}
   }a
  • Warum machst du key = Object.keys(item)[0]; item=item[key]; ? Sie kennen bereits den Namen ist key, so einfach tun item.key oder objArr[i].key. Auch mit der [0] index nicht unbedingt immer die gleiche Eigenschaft.
InformationsquelleAutor AlecPerkey | 2013-10-07
Schreibe einen Kommentar