我正在尝试使用以下语法:
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/