Underscore.js _.contains函数

  • Post category:jquery

Underscore.js _.contains函数详解

_.contains函数是Underscore.js库中提供的一个功能函数,用于判断一个数组或对象是否包含指定的值。下面将从以下几个方面详细讲解该函数的使用。

语法

_.contains(list, value, [fromIndex])
  • list:需要被查询的数组或对象;
  • value:需要被查询的值;
  • fromIndex:可选参数,表示开始查询的索引位置;

返回值

value存在于list中,则返回true;反之,返回false

示例

在本示例中,我们将使用_.contains函数判断一个数组中是否包含指定的值:

// 导入Underscore.js库
const _ = require('underscore');

// 声明一个数组
const arr = [1, 2, 3, 4, 5];

// 判断该数组中是否包含值为3的元素
console.log(_.contains(arr, 3)); // 输出:true

// 判断该数组中是否包含值为6的元素
console.log(_.contains(arr, 6)); // 输出:false

在上述示例中,我们首先使用require函数导入了Underscore.js库。之后声明了一个包含数字1到5的数组arr,接着使用_.contains函数分别判断该数组中是否包含值为3和6的元素。程序输出结果显示,数组中包含值为3的元素,不包含值为6的元素,符合预期。

下面的示例中,我们将使用_.contains函数判断一个对象中是否包含指定的值(该对象含有数组属性):

// 导入Underscore.js库
const _ = require('underscore');

// 声明一个含有数组属性的对象
const obj = { name: 'Tom', age: 20, skills: ['Node.js', 'Python', 'Java'] };

// 判断该对象的skills属性中是否包含字符串'Python'
console.log(_.contains(obj.skills, 'Python')); // 输出:true

// 判断该对象的skills属性中是否包含字符串'JavaScript'
console.log(_.contains(obj.skills, 'JavaScript')); // 输出:false

在上述示例中,我们声明了一个包含了一个数组属性skills的对象obj,接着使用_.contains函数分别判断该对象的skills属性中是否包含字符串'Python''JavaScript'。程序输出结果显示,skills属性中包含了字符串'Python',不包含字符串'JavaScript',符合预期。

注意事项

  • 若要查询的目标列表不是一个数组,_.contains函数内部会首先通过_.values函数将其转换为一个数组再进行查询;
  • fromIndex参数使用时,其实际查询的位置为fromIndex与其绝对值最小的可用值的最大值。例如,若fromIndex-2,则实际查询的起始位置为length - 2

至此,_.contains函数的详细讲解已经结束。这个函数使用简单而且功能强大,希望本文内容对大家有所帮助。