2011-02-12 69 views
0

下面的代码是否安全?你会如何完成同样的事情?抓斗参考,设置默认值

说我有一个对象x。我想为x中的某个键添加一些值,将该键设置为空数组,如果它不在那里:

var x = {}; 
var a = x['k'] = x['k'] || []; 
a.push('moo'); 

回答

2

试试这个吗?

var x = {}, a = 'k' in x ? x['k'] : []; 

编辑

var x = {}, a = []; 

if (x['k']) { 
    a = x['k']; 
} else { 
    x['k'] = a; 
} 
+0

我认为不会离开我随x [ 'K'] ===一个?有趣的是看到“在”运营商虽然。没有意识到这是可用的。 – 2011-02-12 01:43:07