JavaScript缩写中的if语句用于检查字符串。

5
我有一个变量var names = [];,只有在字符串不为空的情况下才想将其推入其中。是否有一种简写方法可以在js中实现这一点?)
现在我拥有的是这样的。
 if ("" != opportunityName) 
    {
    names.push(opportunityName);
    }

这对我没用,它会推送一个空字符串。

names.push(opportunityName || "");
1个回答

6
您可以使用短路计算:
opportunityName && names.push(opportunityName);

只有当左操作数为真值时,才会对右操作数进行求值。

谢谢,那真是太简单了 =) - Maks Martynov
它能正常工作,但与 if (opportunityName) names.push(...); 相比几乎没有缩短,并且可读性较差... - LarsH
@LarsH 如果通过代码风格强制使用花括号,那么会更短一些,而且如果添加了换行符更是如此。个人而言,我总是使用花括号,所以像这样的简短一行代码有时正是我所需要的。 - George Kagan
@timenomad:一个有道理的观点,在实践中...这样的编码风格并不罕见。我认为,如果一种编码风格强制要求在if的“then”子句中使用花括号,那么为了保持一致性,在仅用于短路的情况下使用&&的模式中,它应该强制要求在右侧表达式周围加上括号:opportunityName && (names.push(opportunityName))。然而,我还没有看到强制执行后者的编码风格。 - LarsH

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接