私のcoffeescriptオブジェクトにいくつのキーがあるのか知りたいのですが。
私はjsでこれを使ってそれを行うことができます:
Object.keys(obj).length
Coffeescriptでこれを行う方法はありますか?
私のcoffeescriptオブジェクトにいくつのキーがあるのか知りたいのですが。
私はjsでこれを使ってそれを行うことができます:
Object.keys(obj).length
Coffeescriptでこれを行う方法はありますか?
従来のブラウザのサポートが心配な場合
Object.keys(obj).length
ECMAScript5ソリューションです
ただし、IE8以前をサポートしたい場合、これはかなり目立たないCoffeescript固有のソリューションです。
(k for own k of obj).length
これは、CoffeeScriptの理解構文を利用してキーの配列を構築します
keys = (k for own k of obj) # Array of keys from obj
そして、その配列で長さを呼び出します
keys
プロトタイプ関数を作成します。
Object.defineProperty Object.prototype, 'keys',
enumerable : false,
writable : true,
value: ->
return (key for own key of @)
こんな風に使えるように
nodes_Ids: ->
return _nodes_By_Id.keys()
このテストで使用されます
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' )