如何在 JavaScript 中获取第一个非空/未定义的参数?


JavaScript 中,我们经常需要在函数中找到第一个非空/未定义的参数。这可能是一项棘手的任务,但幸运的是,有一些方法可以帮助我们实现这一点

使用 Array.prototype.find()

在 JavaScript 中,获取第一个非空/未定义参数的一种方法是使用 **Array.prototype.find()** 方法。此方法返回数组中第一个通过给定测试的元素的值。在我们的例子中,我们可以使用此方法通过传递一个检查参数是否不为 null/undefined 的测试来查找第一个非空/未定义的参数。

示例

在下面的示例中,我们定义了一个函数来查找第一个非空或未定义的参数。

<html>
<head>
   <title>Example: finding first non-null arguements</title>
</head>
<body>
   <h2> Array.prototype.find() Method</h2>
   <div id="arguments"></div>
   <div id="result"></div>
   <script>
      function findFirstNonNullArgument(...args) {
         return args.find(arg => arg != null);
      }
      var result = findFirstNonNullArgument(null, undefined, "Hello", "World");
      document.getElementById("arguments").innerHTML = `Arguments: null, undefined, "Hello", "World"`;
      document.getElementById("result").innerHTML = "<br>First Non-Null Argument: " + result;
   </script>
</body>
</html>

从上面的代码中我们可以看到,findFirstNonNullArgument() 函数接受可变数量的参数,并使用 find() 方法返回第一个非空/未定义的参数。

使用 Array.prototype.filter()

在 JavaScript 中,获取第一个非空/未定义参数的另一种方法是使用 **Array.prototype.filter()** 方法。此方法创建一个包含所有通过给定测试的元素的新数组。在我们的例子中,我们可以使用此方法通过传递一个检查参数是否不为 null/undefined 的测试来查找第一个非空/未定义的参数。

示例

以下是完整的可运行代码。

<html>
<head>
   <title>Example: finding first non-null arguements</title>
</head>
<body>
   <h2> Array.prototype.filter() Method</h2>
   <div id="arguments"></div>
   <div id="result"></div>
   <script>
      function findFirstNonNullArgument(...args) {
         return args.filter(arg => arg != null)[0];
      }
      document.getElementById("arguments").innerHTML = `Arguments: null, undefined, "Hello", "World"`;
      document.getElementById("result").innerHTML = "<br>First non-nul argument: " + findFirstNonNullArgument(null, undefined, "Hello", "World")
   </script>
</body>
</html>

从上面的代码中我们可以看到,findFirstNonNullArgument() 函数接受可变数量的参数,并使用 filter() 方法返回第一个非空/未定义的参数。

使用 for 循环

在 JavaScript 中,获取第一个非空/未定义参数的另一种方法是使用 for 循环。此方法循环遍历所有参数,并检查每个参数是否不为 null/undefined。如果找到一个不为 null/undefined 的参数,则返回该参数。

示例

以下是完整的可运行代码 -

<html>
<head>
   <title>Examples</title>
</head>
<body>
   <div id="result"></div>
   <script>
      function findFirstNonNullArgument(...args) {
          for (let arg of args) {
             if (arg != null) {
                return arg;
            }
         }
      }
      document.getElementById("result").innerHTML = findFirstNonNullArgument(null, undefined, "Hello", "World")
   </script>
</body>
</html>

从上面的代码中我们可以看到,findFirstNonNullArgument() 函数接受可变数量的参数,并使用 for 循环返回第一个非空/未定义的参数。

结论

在本文中,我们介绍了三种不同的方法,这些方法可用于在 JavaScript 中获取第一个非空/未定义的参数。每种方法都有其自身的优点和缺点,因此选择适合手头任务的方法非常重要。

更新于: 2022年7月1日

3K+ 次查看

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告