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