📜  Underscore.js _.contains函数(1)

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

Underscore.js _.contains函数

Underscore.js是JavaScript中一个广受欢迎的函数库,它提供了一系列常用的函数和工具,可以方便地操作和处理数组、对象、函数等。其中,_.contains函数用于判断一个数组或者对象中是否包含某一个值。

用法

_.contains(collection, value, [fromIndex])

  • collection:要搜索的数组或对象。
  • value:要查找的值。
  • fromIndex(可选):开始搜索的位置。如果是负数,则从末尾开始搜索。

函数的返回值为布尔值,表示要查找的值是否在集合中存在。

例子
_.contains([1, 2, 3], 2); // true
_.contains({ name: 'Tom', age: 18 }, 'Tom'); // false
_.contains('Hello world', 'l'); // true
_.contains(['apple', 'banana', 'orange'], 'grape', 2); // false

在上面的例子中,我们分别使用了数组、对象、字符串和指定开始搜索位置的形式来使用_.contains函数。

源码

下面是_.contains函数的源码实现:

_.contains = _.includes = _.include = function(obj, item, fromIndex, guard) {
  if (!isArrayLike(obj)) obj = _.values(obj);
  if (typeof fromIndex != 'number' || guard) fromIndex = 0;
  return _.indexOf(obj, item, fromIndex) >= 0;
};

该函数内部调用了_.indexOf函数,判断要查找的值在数组或对象中是否存在。

总结

_.contains函数是Underscore.js中一个非常有用的函数,可以用于判断数组或对象中是否包含某一项。在实际开发中,我们可以通过其返回值来进行下一步操作。如果返回true,则表示集合中包含要查找的值,否则表示不包含。