【发布时间】:2015-07-03 01:36:48
【问题描述】:
我遇到了一个有趣的情况,想知道是否有人知道原因。 我的代码中有这个语句
var score = (typeof k.rewards !== 'undefined') ? k.rewards[0].value : k.value;
这将引发数组中未定义值的错误(在三元组的真值一侧)。但是,我知道值就在那里,这样就可以打印出来了。
var score = (typeof k.rewards !== 'undefined') ? k.rewards : k.value;
Console.log(score[0].value);
有谁知道为什么当我尝试直接在三元中访问它时它会未定义?
【问题讨论】:
-
能否添加生成数组的代码?
-
能否说明奖励类型和结构?
-
不应该这样,jsfiddle.net/1wmefa6p
-
改用这个表达式:
var score = k.rewards && k.rewards.length? k.rewards[0].value : k.value;
标签: javascript arrays ternary-operator