欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Underscore.js js 

程序员文章站 2024-03-15 16:32:00
...

_.each(list, iteratee, [context]) 

该函数的功能是:根据iterator迭代器提供的过滤条件,遍历list列表中的每一个元素,每遍历一次,产生一个迭代函数。此外,iterator迭代器还可以与可选项context上下文对象绑定。
_.each([1, 2, 3], alert); 
=> 1;2;3 (输出数组中的每个经过运算后的元素,等价于for循环,无返回值。) 


_.map(list, iteratee, [context])  

该函数的功能是:根据iterator迭代器中的函数,遍历list列表中的每一个元素,在完成列表元素遍历之后,该函数将返回一个数组对象。
_.map([1, 2, 3], function(num){ return num * 2; }); 
=> [2, 4, 6] (输出的是经过运算后的数组,相当于映射,新数组的长度等于原数组的长度,有返回值。)


_.reduce(list, iteratee, [memo], [context]) 
别名为 inject 和 foldl, reduce方法把list中元素归结为一个单独的数值。Memo是reduce函数的初始值,reduce的每一步都需要由iteratee返回。这个迭代传递4个参数:memo,value 和 迭代的index(或者 key)和最后一个引用的整个 list。 
如果没有memo传递给reduce的初始调用,iteratee不会被列表中的第一个元素调用。第一个元素将取代 传递给列表中下一个元素调用iteratee的memo参数。 
var sum = _.reduce([1, 2, 3], function(memo, num){ return memo + num; }, 0); 
=> 6 (输出的是被遍历数组的所有元素的运算结果,是一个值。有返回值。) 

_.filter(list, predicate, [context])
遍历list中的每个值,返回包含所有通过predicate真值检测的元素值。(愚人码头注:如果存在原生filter方法,则用原生的filter方法。) 
var evens = _.filter([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; }); 
=> [2, 4, 6] (输出的是经过条件筛选后的数组,新数组的长度小于等于原数组的长度,有返回值。) 

相关标签: js