coffeescript字典设置默认值

时间:2013-08-22 21:20:37

标签: python dictionary coffeescript

在Python中,如果你有一个由

之类的列表组成的字典
   mydict = {'foo': [], 'bar':[3, 4]}

如果您想在列表中添加内容,可以执行

   mydict.setdefault('baz', []).append(5)

不写

key, list_element = 'baz', 5
if key in mydict:
    mydict[key].append(list_element)
else:
    mydict[key] = [list_element]

在Coffeescript中有相同的效果吗?

3 个答案:

答案 0 :(得分:8)

我建议不要使用|| / or来测试会员资格 - 它基本上是一个聪明的技巧,可以默默地对付虚假值。我更喜欢写

( mydict[ name ]?= [] ).push value

我觉得更清楚;假设mydict没有name或{。}}的条目 该值为nullundefined,此时应将空列表放在那里。

答案 1 :(得分:1)

这是一个选项:

(mydict.baz or (mydict.baz = [])).push(5)

在这种情况下,CoffeeScript与它生成的JavaScript非常相似:

(mydict.baz || (mydict.baz = [])).push(5);

答案 2 :(得分:0)

如果您不介意使用underscore.js

http://underscorejs.org/#defaults

var iceCream = {flavor : "chocolate"};
_.defaults(iceCream, {flavor : "vanilla", sprinkles : "lots"});
=> {flavor : "chocolate", sprinkles : "lots"}