Chciałbym wiedzieć, ile kluczy znajduje się w moim obiekcie coffeescript.Policz ilość kluczy w obiekcie z Coffeespadem
mogę zrobić z tym w JS:
Object.keys(obj).length
Czy istnieje sposób, aby zrobić to w coffeescript?
Chciałbym wiedzieć, ile kluczy znajduje się w moim obiekcie coffeescript.Policz ilość kluczy w obiekcie z Coffeespadem
mogę zrobić z tym w JS:
Object.keys(obj).length
Czy istnieje sposób, aby zrobić to w coffeescript?
Jeśli martwisz się o wsparcie przeglądarki starszego
Object.keys(obj).length
jest ECMAScript 5 Rozwiązanie
Jednak jeśli chcesz wspierać IE8 i earli er Jest to dość dyskretny coffeescript konkretnego rozwiązania
(k for own k of obj).length
ta wykorzystuje coffeescript na Comprehension Syntax zbudować tablicę kluczy
keys = (k for own k of obj) # Array of keys from obj
a następnie wywołuje długość na tej tablicy
Drugi kod wydaje mi się tajemniczy. Czy mogę podać trochę więcej wyjaśnień? – Jokester
@Jokester Dodano kilka szczegółów i łączy, aby lepiej zrozumieć przykład. – jondavidjohn
I utworzyć prototypową funkcję keys
:
Object.defineProperty Object.prototype, 'keys',
enumerable : false,
writable : true,
value: ->
return (key for own key of @)
tak, że mogę po prostu używać go tak jak to
nodes_Ids: ->
return _nodes_By_Id.keys()
który jest stosowany w tym teście
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')
Uwaga ta jest obsługiwana tylko w przeglądarkach, które wdrażają standard ECMAScript 5. Na przykład IE8 i wcześniejsze dusi się na tym. Zobacz mój przykład poniżej dla konkretnego rozwiązania coffeescript, które jest przeglądarką. – jondavidjohn