如何在Javascript中模仿SQL Coalesce语句的功能

som*_*ool 8 javascript jquery coalesce

我想知道在javascript中是否有一种方法可以使逻辑类似于sql中的coalesce语句,它将以指定的顺序返回数据,如下所示:

Select top 1 Coalesce(ColA, ColB, "No Data Found") from TableA;
Run Code Online (Sandbox Code Playgroud)

是否有一种优雅的方式来处理Javascript中的空值,就像sql在上述语句中返回结果一样?

我知道我可以在技术上有一个switch语句,但这需要一些可能不必要的代码

谢谢.

pet*_*ete 10

你可以使用OR.

 var someVar = null || value;
 var otherVar = null || variableThatEvaluatesToNull || functionThatEvaluatesToNull() || value;
Run Code Online (Sandbox Code Playgroud)


nyb*_*ler 5

问题||是像 那样的值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
}
Run Code Online (Sandbox Code Playgroud)

然后您可以按预期调用它:

var myNonNullValue = Coalesce(null, objectA, objectB, "defaultValue");
Run Code Online (Sandbox Code Playgroud)