实现javascript中的filter,map,reduce
2013-06-03 22:11
316 查看
先来实现一个遍历Array的forEach函数:
filter:
map:
reduce:
在ECMAScript5的Array中已经有了Array.prototype.forEach,Array.prototype.filter,Array.prototype.map等方法,
请参考http://www.ecma-international.org/ecma-262/5.1/#sec-15.4。
function foreach(array, func) { for (var i = 0; i < array.length; i++) { func(array[i]); } } function logPrint(element) { console.log(element); } forEach([2, 5, 7], logPrint); //outputs: //2 //5 //7
filter:
function filter(func, array) { var result = []; forEach(array, function(element){ if (func(element)) { result.push(element); } }); return result; } function gtZero(element) { if (x > 0) { return true; } } filter(gtZero, [3, -2, 0, 5]); //[3, 5]
map:
function map(func, array) { var result = []; forEach(array, function(element) { result.push(func(element)); }); return result; } function add1(element) { return element+ 1; } map(add1, [0, 2, 4, 6, 8, 10]); //[1, 3, 5, 7, 9, 11]
reduce:
function reduce(func, init, array) { forEach(array, function(element) { init = func(init, element); }); return init; } function add(element1, element2) { return element1 + element2; } reduce(add, 0, [1, 2, 3, 4]); //10
在ECMAScript5的Array中已经有了Array.prototype.forEach,Array.prototype.filter,Array.prototype.map等方法,
请参考http://www.ecma-international.org/ecma-262/5.1/#sec-15.4。
相关文章推荐
- JavaScript实现Map、Reduce和Filter
- JavaScript实现Map、Reduce和Filter
- js map, reduce, forEach, filter的一般实现
- JavaScript高阶函数 map reduce filter sort
- Javascript实现ECMAScript 5中的map、reduce和filter函数
- javascript中数组的迭代方法对比:forEach()、map()、reduce()、some()、every()、filter()图解
- JavaScript中数组的迭代方法:forEach、map、filter、reduce、every、some
- javascript利用map,every,filter,some,reduce,sort对数组进行最优化处理
- Map-Reduce实现Join 算法(mapreduce侧连接 maponly 连接 map bloomfilter reduce连接) (join二)
- javaScript 高阶函数 map/reduce/filter
- JavaScript的map/reduce/filter/sort 高阶函数
- 一张图看懂JavaScript中数组的迭代方法:forEach、map、filter、reduce、every、some
- 一张图看懂JavaScript中数组的迭代方法:forEach、map、filter、reduce、every、some
- 不要使用JavaScript内置的parseInt()函数,利用map和reduce操作实现一个string2int()函数:
- [置顶] JAVASCRIPT中数组的迭代方法:FOREACH、MAP、FILTER、REDUCE、EVERY、SOME各个说明
- JS学习笔记1——不要使用JavaScript内置的parseInt()和Number()函数,利用map和reduce操作实现一个string2int()函数
- javascript学习(十)— 高阶函数:map/reduce,filter,sort
- 使用python实现内置map,filter,reduce,zip函数
- 一张图看懂JavaScript中数组的迭代方法:forEach、map、filter、reduce、every、some