js map, reduce, forEach, filter的一般实现
2015-08-01 22:27
621 查看
js map, reduce, forEach, filter的一般实现
map(映射), reduce(规约), forEach(遍历), filter(过滤),它们都是高阶函数,都是以传入不同的函数来以不同的方式操作数组元。
1> map
2>reduce
3>forEach
4>filter
map(映射), reduce(规约), forEach(遍历), filter(过滤),它们都是高阶函数,都是以传入不同的函数来以不同的方式操作数组元。
1> map
function map(array, func) { var res = []; for (var i = 0, len = array.length; i < len; i++) { res.push(func(array[i])); } return res; } var res = map([1, 2, 3], function(n){ return n + 3; }); console.log(res);// [4, 5, 6]
2>reduce
function reduce(array, func, initialValue){ var result = initialValue; for(var i = 0, len = array.length; i < len; i++){ result = func.apply(null, [result].concat(array[i])); } return result; } var res = reduce([1, 2, 3], function(previousValue, currentValue){ return previousValue + currentValue; }, 0); console.log(res);// 6
3>forEach
function forEach(array, func){ for (var i = 0, len = array.length; i < len; i++) { func(array[i]); } } forEach([1, 2, 3], function(n){ console.log(n);// 1 \n 2 \n 3 });
4>filter
function filter(array, func){ var res = []; for(var i = 0, len = array.length; i < len; i++){ if(typeof func(array[i]) !== 'undefined'){ res.push(array[i]); } } return res; } var res = filter([1, 2, 3], function(n){ if(n % 2 == 1){ return n; } }); console.log(res);// [1, 3]
相关文章推荐
- javascript_BOM&DOM&JSON
- jsp、Servlet相关知识介绍(转)
- JSP起源、JSP的运行原理、JSP的执行过程
- js 函数式编程 浅谈
- JSP和El表达式和JSTL标签库使用
- bower解决js的依赖管理
- 高性能javascript读书笔记(二.数据访问)
- JavaScript的基本数据类型
- jsp页面与jsp页面之间的传值
- 高德地图JavaScript API-路径规划——基于amap-js_V1.3
- 服务器与客户端数据交互 (json)
- JSTL标签的使用示例
- js自定义函数总结
- poco JSON 的使用
- JavaScript中的parseInt和Number函数
- javascript是什么?
- 如何编写一个JSON解析器
- 从JavaScript 数组去重看兼容性问题,及性能优化(摘自玉伯博客)
- SugarCRM之在EditViews中调用js
- 关于Javascript变量类型的一些注意点