underscore库的使用

来源:互联网 发布:有韵味的句子知乎 编辑:程序博客网 时间:2024/05/29 12:37
underscore.js库是一个js实用库,提供了一整套函数式编程的实用功能,但是没有扩展任何JavaScript内置对象。这是js库的官方解释,在我看来js库就相当于是定义了一个"_"对象,这个对象有很多种方法。在1.8.3中提供了100多个函数,如果想要使用这个库的话,首先需要做的事是:在浏览器中安装这个库。我在使用这个库的时候,用的比较多的是:each,map, filter,contains。
each
_.each(list, iteratee, [context]) 

在我的使用过程中,它和for有些类似,遍历list中的所有元素,按顺序用遍历输出每个元素。
如果传递了context参数,则把iteratee绑定到context对象上。
var number = [0,1,9,3,0,8,7];_.each(number,console.log);

得到的结果是:
0
1
9
3
0
8
7
在一些时候它是可以代替for来使用的,而且比for要来的简单。如果上述程序用for来遍历那么最起码需要四行代码。库的作用在这时候就能很好的体现出来了。
_.map(list, iteratee, [context])

通过转换函数(iteratee迭代器)映射列表中的每个值产生价值的新数组。
var number = [0,1,9,3,0,8,7];var number_1 = _.map(number,function(num){    return num * 3;})console.log(number_1);




_.filter(list, predicate, [context]) 

遍历list中的每个值,返回包含所有通过predicate真值检测的元素值。(这个是有返回值的)。
var evens = _.filter([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 1; });console.log(evens)

输出是:1,3,5
切记这个方法是有返回值的。。。。。

_.contains(list, value, [fromIndex]) 

如果list包含指定的value则返回true,这个用来判断子字符串或者子对象是否在母字符串或者木对象中有很好的效果。
例如:
var number = [1,2,3,0,9,8]if(_.contains(number,3)){     number[2] = 1;}console.log(number[2])
          









原创粉丝点击