繁体   English   中英

使用Coffeescript计算对象中的键数

[英]Count number of keys in object with Coffeescript

我想知道我的coffeescript对象中有多少个键。

我可以用js做到这一点:

Object.keys(obj).length

有没有办法在Coffeescript中做到这一点?

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

然后调用该数组的长度

编译JavaScript的示例

我创建了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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM