2016-11-13 28 views
1
var list = {"you": 100, "me": 75, "foo": 116, "bar": 15}; 
keysSorted = Object.keys(list).sort(function(a,b){return list[a]-list[b]}) 
alert(keysSorted);  // bar,me,you,foo 

von Sorting JavaScript Object by property valuenode.js nicht Object.keys Arbeits

I Objektsortierungs mache. Oben genannte Quelle arbeitet in Javascript. Funktioniert jedoch nicht in Node.js. Ich habe einen Fehler wie folgt.

keysSorted = Object.keys(list).sort(function(a,b){return list[a]-list[b]}) 
        ^
TypeError: Object.keys is not a function 

Ich weiß nicht warum. Bitte hilf mir.

+0

Was zeigt 'node -v'? – mscdex

+0

Was ist Knoten Version v 6.7 es funktioniert gut –

+0

Sind Sie 'Objekt' irgendwo neu deklarieren? wie 'var Object = 'etwas anderes';'? Nicht sicher, wie Node darauf reagieren würde, aber zu sehen, dass TypeError: Object.keys keine Funktion ist, lässt mich nur diese Option ... – Sergio

Antwort

0

Höchstwahrscheinlich verwenden Sie eine veraltete Node.js-Version, v0.10 oder v0.12. Um die Version zu überprüfen, versuchen Sie node -v auszuführen.

Diese alte Version unterstützt Object.keys nicht. Sie können die unterstützten Funktionen für jede Node.js-Version here überprüfen.

Mein Rat ist, auf Version Node.js auf 6.9.1 zu aktualisieren. Diese Version ist aktuelle LTS (Langzeitunterstützung).

+2

Object.keys() auf Objekten funktioniert gut mit Knoten v0.10. – Sergio

+0

Wie Sie sagen, aktualisiere ich node.js zu '6.9.1'. Aber immer noch nicht funktioniert. erscheint der gleiche Fehler. – firepunch

+0

Ich löse es. Ich erklärte 'var Object;' Wie auch immer, danke, dass du antwortest! :) – firepunch