简单的代码,但没有找到答案(也许因为我的主要语言不是英语,所以我看上去还不够深。)

getDeviceInfos(deviceIP) ? displayDevice(**return of getDeviceInfos function**) : dead.push=deviceIP;


如果getDeviceInfos返回的内容不是0(即== true),我希望返回值成为displayDevice调用中的参数。

有什么办法可以做到,还是我需要编写“常规”比较?
谢谢

最佳答案

您可以执行以下操作,但是需要使用var以避免全局变量。结果,这并不是一个直率的表达。

var info;
(info = getDeviceInfos(deviceIP)) ? displayDevice(info) : (dead.push = deviceIP);


虽然这不是您的问题,但您可以(也许应该)通过在标准if-else语句中缓存结果来执行类似的操作,无论您是在var info还是在if本身中:

var info;
if (info = getDeviceInfos(deviceIP)) {
  displayDevice(info);
} else {
  dead.push = deviceIP;
}


如果您不使用三元表达式产生的值,那么我建议使用后一种方法以提高可读性。

关于javascript - 三元比较中的函数返回,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21173085/

10-12 12:24