Underscore.js _.where()函数

Underscore.js是Javascript的一个常用库,提供了很多有用的函数和工具,包括_.where()函数。

_.where()函数简介

_.where()函数是Underscore.js中的一个函数,可以用于从一个包含多个对象的数组中,筛选出符合指定条件的对象(或多个对象)。

函数定义为:

_.where(list, properties)

其中,list参数表示需要筛选的数组,而properties参数则表示需要匹配的键和值的对象。

下面通过两个示例来演示该函数的使用方法。

示例1

假设我们有以下一个包含多个学生数据的数组:

var students = [
    {name: 'Tom', age: 20, gender: 'M'},
    {name: 'Kate', age: 19, gender: 'F'},
    {name: 'Mike', age: 21, gender: 'M'},
    {name: 'Alice', age: 20, gender: 'F'}
];

现在想要从该数组中,找出所有年龄为20岁的学生。可以使用_.where()函数来实现:

var result = _.where(students, {age: 20});

这里传入了students数组和一个包含了age属性值为20的对象作为properties参数。函数返回的result值就为:

[
    {name: 'Tom', age: 20, gender: 'M'},
    {name: 'Alice', age: 20, gender: 'F'}
]

可以看到,返回了两个学生对象,这两个对象的年龄都为20岁。

示例2

再看一个更复杂的例子。假设我们需要提取一个包含多个商品信息的数组中,名称为“Apple”且价格低于$2的所有商品。数组如下:

var products = [
    {name: 'Apple', price: 1.2, category: 'Fruit'},
    {name: 'Orange', price: 2.5, category: 'Fruit'},
    {name: 'Milk', price: 3.5, category: 'Dairy'},
    {name: 'Coke', price: 1.5, category: 'Drink'},
    {name: 'Bread', price: 2.1, category: 'Bakery'},
    {name: 'Pear', price: 0.8, category: 'Fruit'}
];

可以像下面这样使用_.where()函数来提取所需商品:

var result = _.where(products, {name: 'Apple', price: function(p) { return p < 2; }});

这里传入了products数组和一个对象,其中包含了两个属性:nameprice。其中name属性值为'Apple',price属性是一个函数:

function(p) { return p < 2; }

该函数会判断价格是否小于2。因为price属性用了函数,所以可以对数组中的每一个元素进行判断,只筛选符合条件的元素。

函数返回的result值就为:

[
    {name: 'Apple', price: 1.2, category: 'Fruit'}
]

可以看到,返回了一个符合条件的商品对象,对象中的名称为'Apple',价格为1.2,而其他商品对象均未符合条件。

结论

通过以上两个示例,我们可以看出,Underscore.js的_.where()函数可以很方便地提取出数组中符合指定条件的对象。其中properties参数可以提供多个键和值,以匹配更多的条件,而且一些属性也可以提供函数,以实现更精细的筛选。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Underscore.js _.where()函数 - Python技术站

(0)
上一篇 2023年5月12日
下一篇 2023年5月12日

相关文章

  • jQWidgets jqxGrid scrollbarsize属性

    jQWidgets jqxGrid scrollbarsize属性详解 jQWidgets是一个基于jQuery的UI组件库,提供了丰富UI组件工具包。jqxGrid是其中之一,本文将详细介绍jqxGrid的scrollbarsize属性,包括定义、语法和示例。 scrollbarsize属性的定义 jqxGrid的scrollbarsize属性用于设置网格…

    jquery 2023年5月10日
    00
  • jQWidgets jqxFormattedInput refresh()方法

    jQWidgets jqxFormattedInput refresh()方法 jQWidgets是一个基于jQuery的UI组件库,提供了丰富的UI件和工具,包括表格图表、历、菜单等。jqxFormattedInput是jQWidgets中的一个组件,可以用于输入和格式化数字、货币、日期等。jqxFormattedInput提供了refresh()方法,用…

    jquery 2023年5月9日
    00
  • jQuery Validate插件实现表单强大的验证功能

    下面是详细讲解“jQuery Validate插件实现表单强大的验证功能”的完整攻略。 什么是jQuery Validate插件? jQuery Validate是一款用于jQuery的表单验证插件,可以使表单验证变得更加简单和高效。通过使用jQuery Validate,您可以轻松地验证表单内容,包括必填字段、电子邮件格式、数字等。此外,它还支持定制化错误…

    jquery 2023年5月28日
    00
  • 如何在jQuery中为元素附加一个以上的事件处理程序

    在jQuery中,我们可以使用.on()函数为元素附加一个以上的事件处理程序。以下是两个示例,演示如何在jQuery中为元素附加一个以上的事件处理程序: 示例1:附加多个事件处理程序 以下是一个示例,演示如何使用.on()函数为元素附加多个事件处理程序: <!DOCTYPE html> <html> <head> <…

    jquery 2023年5月9日
    00
  • jQWidgets jqxTree easing属性

    以下是关于 jQWidgets jqxTree 组件中 easing 属性的详细攻略。 jQWidgets jqxTree easing 属性 easing 属性用于设置 jQWidgets jqxTree 组件的动画效果。它可以让节点的展开和折叠动作更加平滑和自然。 语法 $(‘#tree’).jqxTree({ easing: ‘easeInOutCir…

    jquery 2023年5月11日
    00
  • jQWidgets jqxHeatMap宽度属性

    jQWidgets jqxHeatMap宽度属性攻略 简介 jQWidgets 是一个基于 jQuery 的 UI 组件库,提供了富的 UI 组件和工具可于创建化应程序。jqxHeatMap 组件用可视化热图数据。本攻略将详介绍 jqxHeatMap 组件的 width,包括如何使用和示例说明。 使用 jqxHeatMap 组件的 width 属性用于设置热…

    jquery 2023年5月10日
    00
  • 如何用jQuery在点击按钮时使用hide()方法

    使用jQuery的hide()方法可以隐藏一个元素。在点击按钮时,可以使用click()方法来触发hide()方法,从而隐藏元素。以下是详细攻略,含两个示例,演示如何使用jQuery在点击按钮时使用hide()方法: 示例1 以下是一个简单的示例,演示如何在点击按钮时使用hide()方法隐藏一个元素: <button id="btn&quot…

    jquery 2023年5月9日
    00
  • jQWidgets jqxToolBar getTools()方法

    以下是关于 jQWidgets jqxToolBar 组件中 getTools() 方法的详细攻略。 jQWidgets jqxToolBar getTools() 方法 jQWidgets jqxToolBar 组件 getTools() 方法用于获取工具栏中的所有工具。该方法不接受任何参数,返回一个包含所有工具的数组。 语法 $(‘#toolbar’).…

    jquery 2023年5月11日
    00
合作推广
合作推广
分享本页
返回顶部