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

JavaScript实用库---Underscore.js 的集合中的一些函数

 
阅读更多

       Underscore一个JavaScript实用库,提供了一整套函数式编程的实用功能,但是没有扩展任何JavaScript内置对象。它是这个问题的答案:“如果我在一个空白的HTML页面前坐下, 并希望立即开始工作, 我需要什么?“...它弥补了部分jQuery没有实现的功能,同时又是Backbone.js必不可少的部分。

       

          Underscore提供了100多个函数,包括常用的: map, filter, invoke — 当然还有更多专业的辅助函数,如:函数绑定, JavaScript模板功能,创建快速索引, 强类型相等测试, 等等.

         

         下面看看集合中几个常用的函数:

1、each:遍历list中的所有元素,按顺序用遍历输出每个元素。

//遍历数组<>
_.each([1, 2, 3], alert);
//遍历对象
_.each({one: 1, two: 2, three: 3}, alert);

   输出结果为:

alerts each number in turn...

alerts each number value in turn...

 2、map:通过转换函数(iteratee迭代器)映射列表中的每个值产生价值的新数组。

_.map(list, iteratee, [context]) Alias: collect 
//遍历数组:
_.map([1, 2, 3], function(num){  
        return num * 3;
 });
//遍历对象:
_.map({one: 1, two: 2, three: 3}, function(num, key){ 
        return num * 3; 
});
//遍历多个数组并返回数组的第一个元素:
_.map([[1, 2], [3, 4]], _.first);

  输出结果:

 [3, 6, 9]

 [3, 6, 9]

 [1, 3]

 3.filter:遍历list中的每个值,返回包含所有通过predicate真值检测的元素值。

//遍历数组:
var evens = _.filter([1, 2, 3, 4, 5, 6], function(num){
        return num % 2 == 0; 
});

 输出结果为:

[2, 4, 6]

 4.countBy:排序一个列表组成一个组,并且返回各组中的对象的数量的计数。

//遍历数组:
_.countBy([1, 2, 3, 4, 5], function(num) {
  return num % 2 == 0 ? 'even': 'odd';
});

 输出结果:

 {odd: 3, even: 2}

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics