📜  Underscore.js _.firstExisting() 方法(1)

📅  最后修改于: 2023-12-03 14:48:10.159000             🧑  作者: Mango

Underscore.js _.firstExisting() 方法

Underscore.js 是一个 JavaScript 工具库,提供了许多函数式编程的实用工具。其中,_.firstExisting() 方法是一种用于从多个参数中获取第一个存在(非 undefined 或 null)值的函数。

使用方法

_.firstExisting() 方法需要传入至少一个参数。它将在这些参数中查找第一个存在的值,并返回该值。如果所有参数都不存在,则返回 undefined。

_.firstExisting('a', '', null, 'b', undefined, 'c'); // => 'a'
_.firstExisting('', null, undefined); // => undefined

可以看到,第一个例子中,'a' 是第一个存在的值,因此它被返回。而在第二个例子中,所有参数都不存在,因此返回值是 undefined。

实现原理

_.firstExisting() 方法的实现非常简单。它使用 JavaScript 的 arguments 对象获取传入的所有参数,并使用 _.find() 方法查找第一个存在的值。

_.mixin({
  firstExisting: function() {
    return _.find(arguments, function(value) {
      return !_.isUndefined(value) && !_.isNull(value);
    });
  }
});

上述代码将 _.firstExisting() 方法添加到 Underscore.js 中。它使用 _.find() 方法来查找第一个存在的值。_.find() 方法接受一个值和一个迭代函数作为参数。该函数将在每个值上调用,并且如果返回 true,则该值将被返回。

在这种情况下,迭代函数返回非 undefined 或 null 的第一个值。如果所有值都不存在,则返回 undefined。

总结

_.firstExisting() 是 Underscore.js 提供的一个实用函数。它可以帮助开发人员从多个参数中查找第一个存在的值,从而避免使用 if 语句进行多个检查的麻烦。这个函数是一个简单的 JavaScript 函数,可以轻松地添加到自己的代码中,并提供所有 Underscore.js 工具库的好处。