1Danke
ERLEDIGT
NEIN
NEIN
ANTWORTEN
7
7
ZUGRIFFE
297
297
EMPFEHLEN
-
06.12.11 17:12 #1
- Registriert seit
- Dec 2011
- Ort
- A, A
- Beiträge
- 5
Hi,
habe ein JS Object mit z.B. der Form:
Code :1 2 3 4
[] HTML = 1 SPAN = 204 DIV = 132
Wie kann ich das Object so nach dem Wert ordnen, das am Ende das Object folgendermaßen ausschaut
Code :1 2 3 4
[] HTML = 1 DIV = 132 SPAN = 204
Habe schon 1000 Seite durchsucht dort sind sehen die Objekte aber immer etwas anders aus...
-
Ich verstehe nicht, in welcher Form die Daten vorliegen. Was du dort als JS Object postest, lässt das leider nicht erkennen.
Meinst du so was?
Code :1 2 3 4 5
{ "HTML": 1, "SPAN": 204, "DIV": 132 }
-
06.12.11 18:17 #3
- Registriert seit
- Dec 2011
- Ort
- A, A
- Beiträge
- 5
-
06.12.11 18:21 #4
- Registriert seit
- Dec 2011
- Ort
- A, A
- Beiträge
- 5
Also nochmal genauer:
ich will den DOM einer Website auslesen. Daraus erstelle ich ein Array/Object das immer einen TagName = Anzahl der Tags
mit dieser Funktion
Code :1 2 3 4 5 6 7 8 9 10 11 12
var tagCount = new Array(); var allTags = $( '*', contentDocument ); $.each( allTags, function() { if( typeof( tagCount[ this.tagName ] ) == 'undefined' ) tagCount[this.tagName] = 1; else tagCount[ this.tagName] = tagCount[ this.tagName] + 1; } );
z.B.:
Code :1 2 3 4
HTML: 1 SPAN: 5 H1: 6 DIV: 3
dieses Objekt möchte ich ordnen, so dass es am Ende so ausschaut
Code :1 2 3 4
HTML: 1 DIV: 3 SPAN: 5 H1: 6
das Ding dabei ist, dass ich die Werte sortieren kann, die TagNamen aber gleich bleiben, also kommt ein falsches Ergebnis raus z.B.:
Code :1 2 3 4
HTML: 1 SPAN: 3 H1: 5 DIV: 6
Geändert von Ozan Cörüt (06.12.11 um 18:25 Uhr)
-
Lass dir die Daten mal mittels JSON.stringify() in die Konsole ausgeben. Dass FireBug dir das anzeigt ist ja schön, aber wo kommen die Daten her? Ist das jetzt die Ansicht von einem Objekt aus deinem JavaScript Code?
Falls es sich wirklich um eine Objekt handelt, dann kannst du da nichts sortieren. Ein Objekt ist im Prinzip eine Hashmap und hat keine Ordnung. Du kannst es nur bei der Ausgabe machen. Oder du steckst alles in ein Array.
Edit: Jetzt bekommt das ganze Hand und Fuß. Ich gucke mir deinen Code erst mal an.
-
06.12.11 18:31 #6
- Registriert seit
- Dec 2011
- Ort
- A, A
- Beiträge
- 5
Wenn ich JSON.stringify() benutze gibt er garnichts aus :>
-
Weil dein Code falsch ist. Du legst mit "new Array" ein Array an, benutzt es aber als Objekt.
Code javascript:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
var tagObj = {}, tagArr = [], allTags = document.getElementsByTagName('*'); //Die Elemente und Ihre Häufigkeit als Schlüssel/Wert Paare ins Objekt /* { "HTML": 1, "DIV": 17, ... } */ for(var i = 0; i < allTags.length; i++) { var name = allTags[i].tagName; tagObj[name] = (tagObj[name] || 0) + 1; } //Jetzt ein Array, dass an jeder Stelle ein Objekt hat, mit den Infos zu dem Elemente /* [ { "tag": "HTML", "count": 1 }, { "tag": "DIV", "count": 17 }, ... ] */ for(var k in tagObj) { tagArr.push({ "tag": k, "count": tagObj[k] }); } //Sortieren tagArr.sort(function(a, b) { return a["count"] - b["count"]; }); console.log(JSON.stringify(tagObj)); console.log(JSON.stringify(tagArr));
-
06.12.11 18:54 #8
- Registriert seit
- Dec 2011
- Ort
- A, A
- Beiträge
- 5
Vielen Dank, habe es jetzt hinbekommen.
Geändert von Ozan Cörüt (06.12.11 um 19:06 Uhr)
Ähnliche Themen
-
MYSQL KAlender nach Datum gruppieren, nach Uhrzeit sortieren
Von kamstarr im Forum Relationale DatenbanksystemeAntworten: 7Letzter Beitrag: 09.01.10, 01:12 -
Sortieren nach Datum und nach jetztiger Zeit
Von ciberjoerg im Forum PHPAntworten: 1Letzter Beitrag: 21.09.09, 08:23 -
Array sortieren nach leeren Elementen sortieren, Reihenfolge beibehalten
Von trench140 im Forum PHPAntworten: 5Letzter Beitrag: 24.09.08, 00:10 -
int nach Object casten?
Von chickenwings im Forum JavaAntworten: 6Letzter Beitrag: 28.05.06, 21:45 -
nach jahren und nach monaten sortieren
Von Torsoe im Forum Relationale DatenbanksystemeAntworten: 1Letzter Beitrag: 02.06.04, 19:09





Zitieren



Login





