Ich würde gerne wissen, wie viele Schlüssel in meinem coffeescript Objekt sind.Count Anzahl der Schlüssel in Objekt mit Coffeescript
Ich kann es mit diesem in js:
Object.keys(obj).length
Gibt es eine Möglichkeit, dies in Coffeescript zu tun?
Ich würde gerne wissen, wie viele Schlüssel in meinem coffeescript Objekt sind.Count Anzahl der Schlüssel in Objekt mit Coffeescript
Ich kann es mit diesem in js:
Object.keys(obj).length
Gibt es eine Möglichkeit, dies in Coffeescript zu tun?
Wenn Sie Unterstützung für älteren Browser besorgt ist
Object.keys(obj).length
eine ECMAScript 5 Lösung ist
Allerdings, wenn Sie wollen IE8 und Earli unterstützen er Dies ist eine ziemlich unauffällige Coffee spezifische Lösung
(k for own k of obj).length
Dies nutzt Coffee der Comprehension Syntax eine Reihe von Tasten
keys = (k for own k of obj) # Array of keys from obj
zu bauen und dann ruft Länge auf diesem Array
Der zweite Code sieht für mich geheimnisvoll aus. Kann ich ein wenig mehr erklären? – Jokester
@Jokester Einige Details und Links wurden hinzugefügt, um das Beispiel besser zu verstehen. – jondavidjohn
I Erstellen Sie Thed keys
Prototyp-Funktion:
Object.defineProperty Object.prototype, 'keys',
enumerable : false,
writable : true,
value: ->
return (key for own key of @)
, so dass ich es genauso wie verwenden diese
nodes_Ids: ->
return _nodes_By_Id.keys()
welches
it 'add_Node',->
visGraph = Vis_Graph.ctor()
visGraph.add_Node('a').nodes.assert_Size_Is(1)
visGraph.add_Node('a').nodes.assert_Size_Is(1)
visGraph.add_Node( ).nodes.assert_Size_Is(1)
visGraph.add_Node(null).nodes.assert_Size_Is(1)
visGraph.add_Node('b').nodes.assert_Size_Is(2)
visGraph.nodes_Ids() .assert_Contains ('a')
visGraph.nodes_Ids() .assert_Contains ('b')
visGraph.nodes_Ids() .assert_Not_Contains ('c')
Beachten Sie in diesem Test verwendet wird dies nur in Browsern unterstützt, die ECMAScript 5-Norm zu implementieren. Zum Beispiel IE8 und früher wird daran ersticken. Siehe mein Beispiel unten für eine coffescript-spezifische Lösung, die Cross-Browser ist. – jondavidjohn