underscore常用的几个函数(不断学习,不断更新~~)

[size=x-large]前言:[/size]
[size=medium] underscore 是一个JavaScript实用库,提供了类似Prototype.js (或 Ruby)的一些功能,但是没有扩展任何JavaScript内置对象。它提高了代码的可读性,让我们的逻辑更简单.[/size]
[size=x-large]正文:[/size]
[size=medium]1._.find(list, iterator, [context])
功能:遍历list,返回第一个通过iterator迭代器真值检测的元素值,如果没有值传递给测试迭代器将返回undefined。 如果找到匹配的元素,函数将立即返回,不会遍历整个list。[/size]
var this_activity = _.find(JSON.parse(localStorage.getItem( "activities")),function(activity) {return activity.status = "start";
}); //如果activities中存在status为start则返回第一个符合条件的,如果没有则返回undefined

[size=medium]2._.filter(list, iterator, [context])
功能:遍历list中的每个值,返回包含所有通过iterator真值检测的元素值。如果存在原生filter方法,则用原生的filter方法。与select用法相近[/size]
var apply_lists = _.filter(JSON.parse(localStorage.getItem( "received_messages")),function(received_message) {var enter_into_it = localStorage.enter_into_it;
return received_message.activity_name == enter_into_it;
});

[size=medium]3._.where(list, properties)
功能:遍历list中的每一个值,返回一个数组,这个数组包含包含properties所列出的属性的所有的键 - 值对。[/size]
_.where(listOfPlays, {author: "Shakespeare", year: 1611});
=> [{title: "Cymbeline", author: "Shakespeare", year: 1611},
{title: "The Tempest", author: "Shakespeare", year: 1611}]

[size=medium]4._.findWhere(list, properties)
功能:遍历list中的每一个值,返回匹配properties所列出的属性的所有的键 - 值对的第一个值。如果没有找到匹配的属性,或者list是空的,那么将返回undefined。[/size]
_.findWhere(publicServicePulitzers, {newsroom: "The New York Times"});
=> {year: 1918, newsroom: "The New York Times",
reason: "For its public service in publishing in full so many official reports,
documents and speeches by European statesmen relating to the progress and
conduct of the war."}

[size=medium]5._.reject(list, iterator, [context])
返回list中没有通过iterator真值检测的元素集合,与filter相反。[/size]
var odds = _.reject([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; });
=> [1, 3, 5]

[size=medium]6._.every(list, [iterator], [context])
如果list中的所有元素都通过iterator的真值检测就返回true。如果存在原生的every方法,就使用原生的every。[/size]
_.every([true, 1, null, 'yes'], _.identity);
=> false

[size=medium]7._.some(list, [iterator], [context])
如果list中有任何一个元素通过 iterator 的真值检测就返回true。一旦找到了符合条件的元素, 就直接中断对list的遍历. 如果存在原生的some方法,就使用原生的some[/size]
_.some([null, 0, 'yes', false]);
=> true

[size=medium]8._.contains(list, value)
如果list包含指定的value则返回true。如果list 是数组,内部使用indexOf判断。[/size]
_.contains([1, 2, 3], 3);
=> true

[size=medium]9._.groupBy(list, iterator, [context])
把一个集合分组为多个集合,通过 iterator 返回的结果进行分组. 如果 iterator 是一个字符串而不是函数, 那么将使用 iterator 作为各元素的属性名来对比进行分组.[/size]
_.groupBy(those_messages,function(this_message){
return parseInt(this_message.price)
})

[size=medium]10._.map(list, iterator, [context]) Alias: collect
通过变换函数(iterator迭代器)把list中的每个值映射到一个新的数组中(愚人码头注:产生一个新的数组)。如果存在原生的map方法,就用原生map方法来代替。如果list是个JavaScript对象,iterator的参数是(value, key, list)。[/size]
_.map(grouped_those_messages,function(value,key){
return {"price":key,"count":value.length}
})

[size=medium]11._.sortBy(list, iterator, [context])
返回一个排序后的list拷贝副本。如果有iterator参数,iterator将作为list排序的依据。迭代器也可以是字符串的属性的名称进行排序的(比如 length)。[/size]
_.sortBy(those_messages,function(this_message){
return parseInt(this_message.price)
});

[size=medium]12.each_.each(list, iterator, [context])
遍历list中的所有元素,按顺序用遍历输出每个元素。如果传递了context参数,则把iterator绑定到context对象上。每次调用iterator都会传递三个参数:(element, index, list)。如果list是个JavaScript对象,iterator的参数是 (value, key, list))。如果存在原生的forEach方法,Underscore就使用它代替。[/size]
_.each([1, 2, 3], alert);//依次提示每个数字
_.each({one: 1, two: 2, three: 3}, alert);//依次提示每个值

[size=medium]应该注意的是:each与map相似,但是没有返回值,所以用它alert是可以的,但是涉及到返回值就不可以使用了[/size]
[size=medium]13.size_.size(list) 返回list的长度。[/size]
_.size(activities);//其中activities是一个数组,返回值是该数组的长度

[size=medium]14.chain_.chain(obj) 返回一个封装的对象. 在封装的对象上调用方法会返回封装的对象本身, 直道 value 方法调用为止.[/size]
_.chain(BidMessages.get_bid_messages())
.filter(function(bid_message){
return bid_message.activity_name == localStorage.enter_into_it && bid_message.bid_id == localStorage.enter_into_bid
})
.groupBy(function(bid_message){
return parseInt(bid_message.price)
})
.map(function(value,key){
return {"price":key,"count":value.length}
})
.value();//获取封装对象的最终值.

[size=x-large]参考文献:[/size]
1.官方文档:[url]http://underscorejs.org/[/url]
2.中文文档:[url]http://www.css88.com/doc/underscore/[/url]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 智慧社区背景与挑战 随着城市化的快速发展,社区面临健康、安全、邻里关系和服务质量等多方面的挑战。华为技术有限公司提出智慧社区解决方案,旨在通过先进的数字化技术应对这些问题,提升城市社区的生活质量。 2. 技术推动智慧社区发展 技术进步,特别是数字化、无线化、移动化和物联化,为城市社区的智慧化提供了可能。这些技术的应用不仅提高了社区的运行效率,也增强了居民的便利性和安全性。 3. 智慧社区的核心价值 智慧社区承载了智慧城市的核心价值,通过全面信息化处理,实现对城市各个方面的数字网络化管理、服务与决策功能,从而提升社会服务效率,整合社会服务资源。 4. 多层次、全方位的智慧社区服务 智慧社区通过构建和谐、温情、平安和健康四大社区模块,满足社区居民的多层次需求。这些服务模块包括社区医疗、安全监控、情感沟通和健康监测等。 5. 智慧社区技术框架 智慧社区技术框架强调统一平台的建设,设立数据中心,构建基础网络,并通过分层建设,实现平台能力及应用的可持续成长和扩展。 6. 感知统一平台与服务方案 感知统一平台是智慧社区的关键组成部分,通过统一的RFID身份识别和信息管理,实现社区服务的智能化和便捷化。同时,提供社区内外监控、紧急救助服务和便民服务等。 7. 健康社区的构建 健康社区模块专注于为居民提供健康管理服务,通过整合医疗资源和居民接入,实现远程医疗、慢性病管理和紧急救助等功能,推动医疗模式从治疗向预防转变。 8. 平安社区的安全保障 平安社区通过闭路电视监控、防盗报警和紧急求助等技术,保障社区居民的人身和财产安全,实现社区环境的实时监控和智能分析。 9. 温情社区的情感沟通 温情社区着重于建立社区居民间的情感联系,通过组织社区活动、一键呼叫服务和互帮互助平台,增强邻里间的交流和互助。 10. 和谐社区的资源整合 和谐社区作为社会资源的整合协调者,通过统一接入和身份识别,实现社区信息和服务的便捷获取,提升居民生活质量,促进社区和谐。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值