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

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是否真实?还是我仍然可以使用这种简单的方法像其他情况一样快速设置变量?

我也试过

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


谢谢!

最佳答案

您必须先测试otherVar是否存在,以使您无法真正使用该语法来做到这一点,但是您可以这样做:

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


之所以有效,是因为and语句在测试索引之前失败。

关于javascript - javascript选择第一个非falsey值显示数组索引错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16029111/

10-13 00:46