javascript select first false falsey value显示数组索引的错误

时间:2013-04-16 04:59:48

标签: javascript

我正在尝试使用以下语法:

someVar = otherVar || ''; 
// set someVar to otherVar, or '' if otherVar is false

当我将otherVar变成某个数组键时,

someVar = otherVar[1] || ''; // otherVar[1] is undefined.

我收到错误

  

无法读取未定义的属性“1”

这是有道理的,因为otherVar [1]未定义......但是 -

问题:在设置otherVar[1]之前,唯一的方法是阻止这种情况,检查someVar是否真实?或者我仍然可以使用这种简单的方法快速设置变量,就像if else?

我也试过

someVar = (!!otherVar[1]) ? otherVar[1] : ''; // didn't work either.

谢谢!

2 个答案:

答案 0 :(得分:3)

您必须首先测试otherVar是否存在,因此您无法使用该语法执行此操作,但您可以执行此操作:

someVar = otherVar && otherVar[1] ? otherVar[1] : '';

这是有效的,因为和语句在索引测试之前失败了。

答案 1 :(得分:1)

我假设您的情况是 变量<{1}}。你可以使用这个小技巧,神秘而又整洁:

undefined