Ich habe das folgende Array:Array Gruppe von zweimal und zählen Vorkommnissen
var array = [
{ idOne: 1, oneText: 'one', idTwo: 2, twoText: 'two' },
{ idOne: 1, oneText: 'one', idTwo: 2, twoText: 'two' },
{ idOne: 12, oneText: 'twelve', idTwo: 23, twoText: 'twentythree' },
{ idOne: 12, oneText: 'twelve', idTwo: 23, twoText: 'twentythree' },
{ idOne: 12, oneText: 'twelve', idTwo: 25, twoText: 'twentyfive' },
{ idOne: 16, oneText: 'sixteen', idTwo: 56, twoText: 'fiftysix' },
{ idOne: 16, oneText: 'sixteen', idTwo: 56, twoText: 'fiftysix' },
{ idOne: 16, oneText: 'sixteen', idTwo: 56, twoText: 'fiftysix' },
{ idOne: 16, oneText: 'sixteen', idTwo: 50, twoText: 'fifty' },
{ idOne: 16, oneText: 'sixteen', idTwo: 50, twoText: 'fifty' },
{ idOne: 18, oneText: 'eighteen', idTwo: 90, twoText: 'ninety' }
];
ich sie zu einer Gruppe versuchen, zuerst von Idone, dann durch idTwo und zählen, wie viele von ihnen gefunden werden, und dann sortieren sie:
Im Moment habe ich die folgende Methode:
var result = _.chain(array)
.groupBy("idOne")
.map(function(idOne, idOneKey) {
return _.chain(idOne)
.groupBy("idTwo")
.map(function(idTwo, idTwoKey) {
return {
id: idOneKey + '-' + idTwoKey
}
})
.value();
})
.value();
Aber ich möchte folgendes Array oder Objekt zurückgeben, nicht sicher, was man am besten wäre:
result = {
'one-two': 2,
'twelve-twentythree': 2,
'twelve-twentyfive': 1,
'sixteen-fiftysix': 3
...
}
Es muss nicht mit Unterstrich oder Lodash sein, einfach was auch immer es funktioniert.
stammt JS Lösung erlaubt? – RomanPerekhrest
Ich implementiere das in einer Reagieren-App, also was auch immer wirklich funktioniert ... –
möchten Sie nicht ein Objekt mit einer Struktur wie: {[idOne]: {[idTwo]: {Objekt}}}? im Wesentlichen eine Karte von Karten zu den Objekten? – bryan60