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

Underscore中的map和each

 
阅读更多
在做练习时需要对数据进行groupby操作,然后把groupby的结果的key值和value的长度取出来存到一个数组中,后面需要显示这个数组的内容。最开始,想到的是用each来做,可是却显示不出来,后来才知道each是没有返回值的,这块需要用map来实现。下面说一下each和map的用法。

介绍each和map之前,先简单介绍一下Underscore。
Underscore 是一个JavaScript实用库,提供了类似Prototype.js (或 Ruby)的一些功能。Underscore提供了80多个函数,包括经常用到的filter,map,each,max,min,find,sortby,groupby,first.
提供一个网址:http://www.css88.com/doc/underscore/
里面有比较详细的介绍和举例。

我在使用map和each的时候遇到了问题,所以在这里总结一下map和each的具体用法和区别。
map和each的主要区别是:map是有返回值的,而each没有返回值。举个例子:
如果执行以下代码:

_.each([1,2,3],alert);
_.map([1,2,3],alert);  //此时执行效果是相同的,因为只是弹出提示框,不需要返回值。

如果执行以下代码:
_.each([1,2,3],function(num){return num *2}); //没有运行结果。
_.map([1,2,3],function(num){return num *2}); //运行结果:[2,4,6]

所以,如果需要有返回值时,不能用each,需要用map。
我的代码最后修改为:

PriceProcess.price_statistics = function(){
    var prices = JSON.parse(localStorage.getItem('prices_statistics_array'));
    return _.map(prices, function(value, key){
        var price_statistics = {};
        price_statistics['price'] = key;
        price_statistics['count'] = value.length;
        return price_statistics;
    });
}
分享到:
评论

相关推荐

    underscore1.5.2中文帮助

    - 为了优化性能,Underscore还提供了压缩版,适合在生产环境中使用,文件大小为4.9KB,并支持Gzip压缩和SourceMap。 4. **源码与贡献**: - 该项目在GitHub上托管,允许开发者报告Bug、讨论功能改进、查看源码和...

    backbone.js underscore.js

    1. **数组操作(Array Functions)**:如`_.each`用于遍历数组,`_.map`用于映射数组,`_.filter`用于筛选数组元素,`_.reduce`用于数组的累加计算。 2. **对象操作(Object Functions)**:例如`_.keys`获取对象的所有...

    Underscore ,是js的一个实用库

    Underscore提供了许多操作数组的方法,如`_.each()`用于遍历数组,`_.map()`用于映射数组,`_.filter()`用于过滤数组元素,`_.reduce()`(或`_.foldl`)用于对数组进行归约操作,`_.uniq()`用于去除数组中的重复元素...

    underscoreAPI文档(英文版pdf)

    - **高性能**:对于现代浏览器中的原生方法(例如 `forEach`, `map`, `reduce`, `filter`, `every`, `some` 和 `indexOf`),Underscore 会委托给它们来提高性能。 #### 三、文档资源 - **GitHub 项目页面**:用户...

    underscore-1.4.3.zip

    1. **数组操作**:Underscore.js提供了一系列用于处理数组的方法,如`each`(遍历数组)、`map`(映射数组元素)、`filter`(筛选数组元素)、`reduce`(归约数组)等,这些方法极大地提高了代码的可读性和效率。...

    underscore应用

    1. **数组操作**:underscore提供了丰富的数组操作方法,如`_.each()`用于遍历数组,`_.map()`用于映射数组元素,`_.filter()`用于筛选满足条件的元素,`_.reduce()`(或`_.foldl`)用于对数组进行归约,以及`_.uniq...

    underscore-1.6.0.zip

    1. **数组操作**:underscore提供了多种处理数组的方法,如_.each()用于遍历数组,_.map()用于映射数组元素,_.filter()用于筛选符合条件的元素,_.reduce()用于对数组元素进行累加或聚合等。 2. **对象操作**:...

    underscore.js帮助文档

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

    underscore源码学习计划

    1. _.each():遍历数组或对象,是Underscore.js中最基础的迭代函数,可用于执行循环操作。 2. _.map():对数组中的每个元素应用一个函数并返回新的数组,实现了函数映射。 3. _.filter():根据指定的测试函数过滤...

    backbone_underscore_注释版

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

    underscore-analysis, underscore-1.8.3.js 源码解读 & 系列文章(完 ).zip

    它提供了诸如map、filter、reduce、each这样的迭代函数,这些函数使得处理数组和对象变得异常简单。例如,`map`函数可以对数组中的每个元素应用一个函数并返回新的数组,`filter`则用于筛选满足条件的元素,而`...

    js,jquery,underscore api文档

    Underscore.js是一个JavaScript实用工具库,它提供了许多函数式编程的辅助方法,如`_.each()`用于遍历数组或对象,`_.map()`用于创建新数组,每个元素都是原数组元素经过函数处理后的结果,以及`_.reduce()`用于对数...

    underscore.rar

    下面我们将深入探讨Underscore.js的核心功能和API。 1. **函数助手**: - `_.each`: 这个方法用于遍历数组或对象,执行提供的回调函数。它可以让你轻松地对集合中的每个元素进行操作。 - `_.map`: 它将一个函数...

    underscore源码解读系列文章

    `.each`用于遍历数组或对象,`.map`则可以将数组中的每个元素映射成新的值,`.filter`筛选出符合条件的元素,而`.reduce`则将数组归约成一个单一的结果。这些工具使得我们能够写出更简洁、可读性更强的代码。 在...

    Underscore源码解析[归类].pdf

    在Underscore中,数组和对象的处理方法有着广泛的应用,例如,`map`可以用于创建新的数组,每个元素是原数组元素经过函数处理后的结果;`reduce`(也称为fold)则可以将数组元素聚合为单一值,常用于计算总和、平均...

    backbound. underscore

    压缩包中的文件包含了 underscore.js 的不同版本和文档资源,如 underscore.js1.4.2英文注释版.htm 提供了源码的英文注释,方便开发者学习和理解。index.html 和 test.html 可能是示例页面,展示了 underscore.js 的...

    Underscore.js 1.3.3 中文注释翻译说明

    此外,库中还包含了`map`、`reduce`、`filter`、`every`、`some`、`indexOf`、`lastIndexOf`等集合操作方法,以及`isArray`和`keys`等辅助函数,用于检测类型和获取对象的键。 对于函数,Underscore提供了函数绑定`...

    lodash underscore js库速查手册

    _.map(list, iterator, [context]) Alias: collect Produces a new array of values by mapping each value in list through a transformation function ( _.reduce(list, iterator, memo, [context]) Aliases: ...

    Underscore.js常用方法总结

    1. 集合相关方法:这一类方法适用于JavaScript中的数组和对象两种数据集合,如map、each、reduce等。 - map:通过提供一个函数,遍历集合中的每一个元素,将函数的返回值组成一个新的数组。 - each:遍历集合中的...

Global site tag (gtag.js) - Google Analytics