`
hjingfen
  • 浏览: 16422 次
社区版块
存档分类
最新评论

Underscore中的find和filter

 
阅读更多
_.find(list, predicate, [context]) Alias: detect
在list中逐项查找,返回第一个通过predicate迭代函数真值检测的元素值,如果没有值传递给测试迭代器将返回undefined。 如果找到匹配的元素,函数将立即返回,不会遍历整个list。

_.filter(list, predicate, [context]) Alias: select
遍历list中的每个值,返回包含所有通过predicate真值检测的元素值。
以上是http://www.css88.com/doc/underscore/中的介绍。

刚开始时,我认为find与filter的区别就是:find找到第一个匹配的元素便停止遍历,返回第一个匹配的元素,而filter是遍历并返回找到的所有匹配元素。所以我觉得如果在一个没有重复元素的数组中进行遍历并返回值时,用find和filter是没有区别的。但是,实际操作时发现find是返回一个值,而filter是把匹配的结果放到一个数组中再返回,也就是说filter返回的是一个数组。
举个简单的例子:

var num = [1,2,3,4,5];
var a = _.find(num, function(num){ 
    return num == 2; 
});     //a的结果是:2
var a = _.filter(num, function(num){ 
    return num == 2; 
}); //a的结果是[2]


分享到:
评论

相关推荐

    underscore1.5.2中文帮助

    - 通过这些方式,社区可以参与到Underscore的开发和维护中来,共同推动库的发展。 5. **版本说明**: - 提供了开发版(版本号1.5.2,未压缩且含注释,大小为43KB)和生产版。 - 另外,项目也包含不稳定版,即...

    underscore.js帮助文档

    Underscore.js是一款轻量级的JavaScript实用库,它...通过阅读和理解Underscore.js的文档,开发者可以更好地掌握这些实用方法,并在项目中灵活运用,提升代码质量。无论是新手还是经验丰富的开发者,都可以从中受益。

    underscore源码学习计划

    Underscore.js提供了丰富的对象和数组操作方法,如_.extend()用于合并对象,_.indexOf()和_.lastIndexOf()用于查找元素位置,_.shuffle()随机打乱数组顺序,以及_.without()移除数组中的特定元素。 四、函数辅助 1....

    backbone_underscore_注释版

    在 Backbone.js 中,Underscore.js 被广泛应用于数据处理和函数辅助。例如,Backbone.Model 中的 validate 方法就经常使用 Underscore 函数来验证数据;在视图渲染时,也可能使用 Underscore 模板引擎来动态生成 ...

    backbone.js underscore.js

    Backbone.js 和 Underscore.js 是两个在JavaScript开发中广泛使用的库,它们为构建复杂的Web应用程序提供了强大的工具。这两个库都是基于jQuery库,其中jQuery-1.10.2.js是jQuery的一个版本,它为DOM操作、事件处理...

    underscore.rar

    - `_.find`: 查找数组中第一个满足条件的元素,如果找到则返回该元素,否则返回`undefined`。 2. **数组助手**: - `_.indexOf`: 返回指定元素在数组中的索引,如果不存在则返回-1。 - `_.lastIndexOf`: 类似于`...

    javascript函数式编程 underscore.js

    8. **集合操作**:Underscore提供了许多对数组和对象的操作,如`_.filter`(过滤)、`_.reduce`(归约)、`_.find`(查找)和`_.groupBy`(分组)等,这些都是函数式编程中的常见操作。 9. **函数工厂**:通过函数...

    Underscore源码解析[归类].pdf

    总的来说,Underscore.js通过一系列实用的函数和方法,提升了JavaScript开发的便捷性和效率,是JavaScript开发中的重要辅助工具。其源码设计考虑了跨平台兼容性,利用了JavaScript语言特性,并且优化了性能,值得...

    Underscore.js常用方法总结

    在日常开发中,Underscore.js为开发者提供了一套简洁而强大的API,可以在前端和后端(node.js)中广泛使用,极大地简化了代码的编写和处理逻辑的复杂度。通过使用这些方法,开发者可以避免编写重复的代码,并且可以...

    lodash underscore js库速查手册

    _.find(list, iterator, [context]) Alias: detect Looks through each value in the list, returning the first one that passes a truth test (iterator). The function returns as _.filter(list, iterator, ...

    微信小程序demo:使用第三方模块Underscore.js,Immutable.js,UUID.zip

    1. **数组操作**:Underscore.js提供了`_.each`用于遍历数组,`_.filter`用于筛选符合条件的元素,`_.map`用于对数组元素进行映射操作,`_.find`用于查找满足条件的第一个元素等。 2. **对象操作**:包括`_.keys`...

    underscore:underscore源码分析

    源码分析中,我们可以看到Underscore.js充分利用了JavaScript的闭包特性,许多函数都是作为闭包实现的,确保了函数的私有性和数据的安全性。此外,Underscore.js还注重性能优化,比如通过缓存计算结果来提高效率。 ...

    JavaScript之underscore_动力节点Java学院整理

    underscore.js是一个轻量级的库,它为JavaScript提供了大量实用的工具函数,包括但不限于`map()`, `filter()`, `each()`, `reduce()`, `find()`, `clone()`等。它将自身绑定到全局变量`_`上,因此使用起来十分便捷。...

    underscore.js

    1. **函数式编程工具**:underscore.js引入了函数式编程的概念,提供了如map、filter、reduce等函数,使得对数组和对象的操作更加简洁高效。 2. **集合操作**:提供了对数组和对象的高级操作,如each、where、find...

    underscore:Underscore的Shim存储库

    4.1 在数据处理中,Underscore可以帮助我们快速过滤、排序和计算数组或对象。例如,筛选出数组中价格大于100的商品: ```javascript var products = [/*...*/]; var expensiveProducts = _.filter(products, ...

    深入解析Backbone.js框架的依赖库Underscore.js的作用

    - **集合类**:包括`each`, `map`, `reduce`, `filter`, `reject`, `every`, `some`, `indexOf`, `lastIndexOf`, `find`, `isEmpty`, `groupBy`等,用于处理可迭代对象(如数组和对象)。 - **数组类**:提供了处理...

    underscore_note:underscore.js原始代码阅读学习笔记

    比如,`_.each`用于迭代数组或对象,`_.find`查找数组中满足条件的第一个元素,`_.extend`用于合并对象属性,`_.omit`和`_.pick`则分别用于从对象中移除或选择特定属性。 4. **实用工具函数**:除了函数式编程特性...

    underscore-source-analysis:Underscore.js原始学习

    2. **数组操作**:包括_.each()遍历数组,_.map()、_.filter()、_.reduce()等函数进行映射、筛选和归约操作,还有_.find()、_.indexOf()等查找功能,它们大大简化了数组的处理。 3. **对象处理**:Underscore.js...

    你可以使用原生ESLint插件的JavaScript方法列表.zip

    "你可以使用原生ESLint插件的JavaScript方法列表.zip"这个资源可能包含了一个详细列表,列出了JavaScript中可以替代lodash和underscore库的一些原生方法。这些库通常被用来提供各种实用函数,如数组操作、对象处理、...

    eb-api-1.0.30.zip

    今天我们将聚焦于一个名为"underscore-java"的开源项目,它是一个针对Java平台的实现,借鉴了JavaScript中的Underscore.js库的理念和功能。这个项目的最新版本为"eb-api-1.0.30.zip",它旨在弥补Java在某些特定功能...

Global site tag (gtag.js) - Google Analytics