[Javascript] Sortieren und Zusammenführen von JSON-Schlüsseln mit übereinstimmenden Werten


Answers

Alternative Lösung:

var result = [];

$(json).each(function (i, e){
    var search = $.grep(result, function(elm){ return e.type == elm.type && e.date.substring(0, 7) == elm.date; });
    if(search.length == 0)
        result.push({ type: e.type, date: e.date.substring(0, 7), qty: e.qty });
    else
        search[0].qty += e.qty;
});
Question

Mein JSON sieht so aus:

json = [
  {
    type: "big"
    date: "2012-12-08"
    qty: 6
  }
  {
    type: "small"
    date: "2012-12-08"
    qty: 9
  }
  {
    type: "big"
    date: "2012-12-15"
    qty: 4
  }
  {
    type: "small"
    date: "2012-12-07"
    qty: 7
  }
  {
    type: "small"
    date: "2012-11-07"
    qty: 3
  }
]    

Was ich versuche zu tun ist gruppieren / fusionieren jeden type , der ein date mit dem gleichen Jahr und Monat hat (die ersten 7 Zeichen in der date ) und die Summe dieser qty . Die Ausgabe sollte so aussehen:

json = [
  {
    type: "big"
    date: "2012-12"
    qty: 10
  }
  {
    type: "small"
    date: "2012-12"
    qty: 16
  }
  {
    type: "small"
    date: "2012-11"
    qty: 3
  }
]  

Es gibt einige ähnliche Fragen, die ich hier gefunden habe, aber keine gefunden habe, die genau das tun, wonach ich suche. Ich habe mit viel Code herumgespielt, der aus verschiedenen Beispielen stammt, aber ich kann nicht ganz die Ergebnisse bekommen, die ich brauche. Ich bin jetzt nicht zu Hause, deshalb kann ich keinen Code einfügen, den ich im Moment ausprobiert habe, aber ich bitte um Hilfe in der Hoffnung, eine Lösung zu finden, die ich später testen kann