Ich habe die folgende Eingabe:eine zweidimensionale spärliche Ergebnismenge mit Ramdajs
var data = [{
month: '2016-01',
city: 'Paris',
count: 6
}, {
month: '2016-01',
city: 'London',
count: 2
}, {
month: '2016-02',
city: 'Paris',
count: 15
}, {
month: '2016-03',
city: 'London',
count: 17
}];
var cityList = ['Paris', 'London'];
Die Daten spärlich ist, weil es ohne alle Städte Monate und Städte ohne alle Monate.
Ich möchte diesen Hash in folgendem Format zu transformieren:
rowsByCity = [{
city: 'Paris',
counts: [6, 15, null]
}, {
city: 'London',
counts: [2, null, 17]
}];
Wie kann ich das mit Ramdajs (docs)? (Ich habe nichts gegen eine reine js-Lösung, wenn es einfach ist)
Idealerweise möchte ich vermeiden, leere Monate mit [null, null, null] vorzufüllen und hinein zu mischen. Vielleicht durch direkte Verwendung einer Transformation auf die Daten (Transponieren?). Aber ich bin mir nicht sicher, wie es geht oder ob es möglich ist.
Fiddle hier: https://jsfiddle.net/dtr0js55/
Ich denke, das ist etwas kühler als meine Version. Auch ich wusste nichts über konvergieren. +1 –
Converge ist nützlich, wenn Sie wirklich etwas punktefrei machen wollen. Ramda hat auch eine etwas verwandte Funktion, ['useWith'] (http://ramdajs.com/docs/#useWith), die gelegentlich hilfreich sein kann. –