coffeescript - Coffescript creating a hashtable -
in following code segment i'm trying create hashtable single key named "one" , push same value "ted" array.
out = {}; in [1..10] key = "one"; if(key not in out) out[key] = []; out[key].push("ted") console.log("pushing ted"); console.log(out); what missing? seems output is:
pushing ted pushing ted pushing ted pushing ted pushing ted pushing ted pushing ted pushing ted pushing ted pushing ted { one: [ 'ted' ] } i expect output be:
pushing ted pushing ted pushing ted pushing ted pushing ted pushing ted pushing ted pushing ted pushing ted pushing ted { one: [ 'ted','ted','ted','ted','ted','ted','ted','ted','ted','ted' ] } here fiddle: http://jsfiddle.net/u4wpg4ts/
coffeescript's in keyword doesn't mean same in javascript. check presence of value rather of key.
# coffee if (key not in out) // .js (roughly) indexof = array.prototype.indexof; if (indexof.call(out, key) < 0) since key ("one") never present in array value ("ted"), condition passes. so, array being replaced , reset empty before each .push().
coffeescript's of keyword instead check key's presence, should pass first time:
# coffee if (key not of out) // .js if (!(key in out))
Comments
Post a Comment