javascript | Objekt-Gruppierung
Habe ich ein Objekt. Es sieht wie folgt aus:
[
{
"name":"Display",
"group":"Technical detals",
"id":"60",
"value":"4"
},
{
"name":"Manufacturer",
"group":"Manufacturer",
"id":"58",
"value":"Apple"
},
{
"name":"OS",
"group":"Technical detals",
"id":"37",
"value":"Apple iOS"
}
]
Möchte ich der Gruppe diese Daten von der Gruppe Feld-und Holen Sie dieses Objekt:
var obj = {
0 = [
{
'group' = 'Technical detals',
'name' = 'Display',
'id' = '60',
'value' = '4'
},
{
'group' = 'Technical detals',
'name' = 'OS',
'id' = '37',
'value' = 'Apple iOS'
}],
1 = [
{
'group' = 'Manufacturer',
'name' = 'Manufacturer',
'id' = '58',
'value' = 'Apple'
}]
}
Wie kann ich Gruppe meine ersten Objekt?
Wollen Sie wirklich ein Objekt-literal? Da die Indizes sind 0 und 1, wäre das nicht ein array besser?
Ich denke, es ist möglich.
Ich denke, es ist möglich.
InformationsquelleAutor user889349 | 2014-02-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie mit so etwas wie dies:
Beachten Sie, dass
Array.prototype.indexOf
ist nicht definiert, in IE8 und älter, aber es gibt gemeinsame polyfills.InformationsquelleAutor MaxArt
Wenn Sie underscore.js in Ihrer Anwendung können Sie einfach Folgendes tun:
Oder wenn Sie es vorziehen, nicht jede Bibliothek verwenden, dann können Sie es selbst tun:
Sehen Sie sowohl Beispiele in Aktion http://jsfiddle.net/nkVu6/3/
InformationsquelleAutor ppoliani
Wenn Sie lodash, die Sie verwenden können,
groupBy
.Es unterstützt sowohl die array-und object.
Beispiel:
InformationsquelleAutor Hongbo Miao
Ich habe versucht, die Antwort markiert als angenommen, aber bemerkt, dass es Elemente fehlen in einigen Gruppen, je nach der Art der Immobilie, die bewertet werden. Dies ist eine Lösung abgeleitet, die Antwort:
InformationsquelleAutor buffaloRDU