[英]Count number of keys in object with Coffeescript
我想知道我的coffeescript对象中有多少个键。
我可以用js做到这一点:
Object.keys(obj).length
有没有办法在Coffeescript中做到这一点?
如果您担心遗留浏览器支持
Object.keys(obj).length
是一个ECMAScript 5解决方案
但是,如果您想要支持IE8及更早版本,这是一个相当不引人注意的Coffeescript特定解决方案
(k for own k of obj).length
这利用CoffeeScript的理解语法来构建一个键数组
keys = (k for own k of obj) # Array of keys from obj
然后调用该数组的长度
我创建了thed 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' )
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.