如何在 Javascript 中模拟 SQL Coalesce 语句的功能
Posted
技术标签:
【中文标题】如何在 Javascript 中模拟 SQL Coalesce 语句的功能【英文标题】:How to mimick the functionality of the SQL Coalesce statement in Javascript 【发布时间】:2012-02-25 14:01:13 【问题描述】:我想知道 javascript 中是否有一种方法可以使逻辑类似于 sql 中的 coalesce 语句,它将按指定的顺序返回数据,如下所示:
Select top 1 Coalesce(ColA, ColB, "No Data Found") from TableA;
有没有一种优雅的方式来处理 Javascript 中的 null 值,就像上面语句中 sql 返回结果的方式一样?
我知道我在技术上可以有一个 switch 语句,但这需要一些可能不必要的代码
谢谢。
【问题讨论】:
null coalescing operator for javascript? 的可能重复项 【参考方案1】:您可以使用“假”值和||
运算符(逻辑或):
var foo = bar || baz;
如果bar
评估为“真实”值,则将bar
的值分配给foo
,否则将baz
分配给baz
(例如,如果bar
未定义、null、false 等)。
【讨论】:
【参考方案2】:您可以使用 OR。
var someVar = null || value;
var otherVar = null || variableThatEvaluatesToNull || functionThatEvaluatesToNull() || value;
【讨论】:
【参考方案3】:这是一个基本相同问题的链接:Is there a "null coalescing" operator in JavaScript?
这称为空值合并。在 C# 中,有一个空合并运算符“??”这就是链接问题的原始提问者所指的内容。
【讨论】:
【参考方案4】:||
的问题是像0
这样的值,这可能是需要的。您可以编写自己的 javascript 函数来模拟 COALESCE。
function Coalesce()
var args = Coalesce.arguments;
for (var i = 0; i < args.length; ++i)
if (null !== args[i])
return args[i];
return null; // No non-null values found, return null
然后您可以按预期调用:
var myNonNullValue = Coalesce(null, objectA, objectB, "defaultValue");
【讨论】:
null !== undefined
是真的......所以可能还想添加一个未定义的检查。以上是关于如何在 Javascript 中模拟 SQL Coalesce 语句的功能的主要内容,如果未能解决你的问题,请参考以下文章
如何在 JavaScript 单元测试中模拟 localStorage?
如何在webview(android)中使用javascript(或不是javascript)模拟键盘事件以输入textarea