Underscore中的map和each

本文探讨了JavaScript实用库Underscore中的Map与Each函数的区别及应用。通过具体实例展示了如何利用这两个函数处理数据,强调了Map适用于需要返回处理结果的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[size=medium]在做练习时需要对数据进行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没有返回值。举个例子:
如果执行以下代码:[/size]

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

[size=medium]如果执行以下代码:[/size]

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

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

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;
});
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值