我经常发现自己需要写下类似的东西:
_parsedBetData["prizeLevel"] = params["prizeLevel"] == null ? "default" : params["prizeLevel"];
我很好奇是否有更好的方法可以做到这一点?我主要担心的是我必须写两次 params [“prizeLevel”] 。
当然,这可以提取到类似于以下的函数:
_parsedBetData["prizeLevel"] = defaultIfNull(params["prizeLevel"], "foo");
function defaultIfNull(o:*, default:*):* {
return o == null ? default : o;
}
但是我必须从我想要进行此检查的任何地方访问此功能。因此,我想知道是否有一些聪明的方法来解决这个问题。也许在某种魔法的帮助下?或者是原型/动态的东西在这里适用?
我迄今为止提出的最佳解决方案是在代码IDE中创建一个宏,使一些特定的键盘组合写出来。但我敢打赌,有人有更好的主意。
答案 0 :(得分:4)
也许logical OR assignment正是您所寻找的:)
你可以做到
params [“prizeLevel”] || =“默认”;
如果您希望它在其他变量中,请使用简单的OR operator
_parsedBetData [“prizeLevel”] = params [“prizeLevel”] || “默认”;
<强> - 编辑 - 强>
32bitkid和cleong都是对的。你应该使用逻辑运算符,而不是按位运算符。
答案 1 :(得分:2)
这可能是您正在寻找的语法:
_parsedBetData["prizeLevel"] = params["prizeLevel"] || "default";
要将_parsedBetData [“prizeLevel”]设置为默认值(如果为null),您可以
_parsedBetData["prizeLevel"] ||= "default";
这可能不会完全符合您的要求,因为空字符串的计算结果也为false。