首页 > 其他 > 详细

underscore中的find,map,each,sortBy,filter,chain的用法

时间:2014-02-15 16:18:10      阅读:566      评论:0      收藏:0      [点我收藏+]

前言


Underscore 是一个JavaScript实用库,提供了类似Prototype.js (或 Ruby)的一些功能,但是没有扩展任何JavaScript内置对象。它弥补了部分jQuery没有实现的功能,同时又是Backbone.js必不可少的部分。

更详细的解释请参看 http://www.css88.com/doc/underscore/


正文


下面只介绍一下在party_bid中用到的几种函数

_.find的用法:遍历列表,返回第一个符合条件的值

   示例        

var lists = [1, 2, 3, 4, 5, 6, 7, 8];
var b = _.find(lists, function (list) {
    return list % 2 == 0;
});  //b的值为2               

_. filter的用法:顾明思意,过滤列表中所有符合条件的值,并返回一个新列表

   示例    

var lists = [1, 2, 3, 4, 5, 6, 7, 8];
var b = _.filter(lists, function (list) {
    return list % 2 == 0;
});  //b的值为[2,4,6,8]

_.each的用法:遍历列表中的每一个元素,相当于一个for循环

   示例

var lists = [1, 2, 3, 4, 5, 6, 7, 8];
_.each(lists, function (list) {
    return alert(list);
});  // 结果是从1到8依次警告

_.map的用法:遍历列表进行相应操作,修改并返回原列表的值

   示例

var fruits = [{name: ‘apple‘, price: 2}, {name: ‘banana‘, price: 6} ];
_.map(fruits, function (fruit) {
    if (fruit.name == ‘apple‘) {
        fruit.price = 4;
    }
    return fruit;
});  //fruits的值变为[{name:apple,price:4},{name:banana,price:6}]

_.sortBy的用法:按某种元素排序,返回按序排好的新列表,不改变原列表的值

   示例

var fruits = [{name: ‘apple‘, price: 2},{name: ‘banana‘, price: 6}, {name: ‘oringe‘, price: 1}];
var new_lists = _.sortBy(fruits, function (fruit) {
    return fruit.price;
}); /*new_lists = [{name: ‘oringe‘, price: 1}, {name: ‘apple‘, price: 2},{name: ‘banana‘, price: 6 }] ,fruits不变*/

_.chain的用法:对同一列表进行不同操作时用,按序执行直到value

   示例

var lists = [3, 5, 1, 7, 4, 6, 2];
_.chain(lists)
    .filter(function(list){return list%2!=0;})
    .sortBy(function(list){return list;})
    .value()
//=>[1,3,5,7]



总结


第一次接触underscore,挺好用,大大减少代码量,还在学习中,望多多指正。



underscore中的find,map,each,sortBy,filter,chain的用法

原文:http://oulafen.blog.51cto.com/7830663/1359098

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!