我找到了适用于我的应用程序的修复程序,但是我复制并粘贴了与其他代码不匹配的代码,我想将这些三元运算符转换为if / else语句。
const name = persona ? persona.player_name : steamID.getSteamID64();
我试图做:
const name = persona;
if (name = persona) {
persona.player_name;
} else {
steamID.getSteamID64;
}
但是它没有用,谢谢您的帮助!
答案 0 :(得分:1)
只需:
let name = '';
if (persona) {
name = persona.player_name;
} else {
name = steamID.getSteamID64();
}
答案 1 :(得分:1)
错误是,在此示例中,三元运算符不检查是否相等,而对于undefined
,则意味着您的示例将转换为以下内容:
let name = undefined;
if (persona !== undefined) {
name = persona.player_name;
} else {
name = steamID.getSteamID64();
}
它将以如下人类语言编写:如果定义了角色,则将属性player_name
分配给名为name
的变量。如果未定义角色,则将steamID.getSteamID64()
的结果分配给name
。
之所以可行,是因为仅检查if(foo)
是if (foo !== undefined)
的简写。三元运算符是内联if条件,因此if(foo)
可以转换为foo ? then : else
。
答案 2 :(得分:0)
您可以使用var
语句声明该值,然后再分配。
const
需要一个值,并以name
作为变量要小心,因为这是窗口名称window.name
的缩写。
var name;
if (persona) name = persona.player_name;
else name = steamID.getSteamID64();