javascript中数组的常用高阶函数
2017-01-30 15:38
267 查看
什么是高阶函数?
高阶函数的定义:如果一个函数操作其他函数,即将其他函数作为参数或将函数作为返回值,则称这个函数是一个高阶函数。
javascript的数组中有常用哪些高阶数组?
函数的作用 | 函数名 | 描述 |
遍历 | forEach | 接收一个操作当前元素的函数,从而完成遍历中重复的操作,此函数没有返回值(注:可参考下列模拟源代码来分析为什么没有返回值,因为即使传递一个有返回值的函数当参数,每次操作中产生的返回值也只是参数函数的返回值,不是forEach函数的返回值) |
过滤 | filter | 接收一个判断每个元素是否符合过滤条件的函数,从而过滤出符合条件的元素(注:类似SQL语句中的where子句) |
映射 | map | 接收一个返回指定映射属性的值的函数(注:类似SQL语句中的select语句) |
聚合汇总 | reduce | 接收两个参数,第一个参数是描述数据聚合策略的函数(该函数必需有两个参数,第一个是汇总变量,第二个是遍历时的当前值),第二个参数值是统计变量的初始值(注:返回的结果是一个独立的值) |
console.log("------------数组中的高阶函数 forEach------------");
function forEach(array,action){
for(var i=0; i<array.length; i++)
action(array[i]);
}
var strs=["tom","zack","leo"];
//forEach(strs,console.log);
var numbers=[0,1,2,3,4,5,6,7,8,9],sum=0;
//forEach(numbers,function(number){sum += number;});
//console.log(sum);
numbers.forEach(function(number){sum += number;});
console.log(sum);
//numbers.forEach(console.log);
//JSON test
console.log("------------JSON test------------");
var obj = {
"name":"lili",
"sex":"female",
"age":18
};
var jsonStr = JSON.stringify(obj);
console.log(jsonStr);
var jsonObj = JSON.parse(jsonStr);
console.log(jsonObj);
//数组中的高阶函数 filter
console.log("------------数组中的高阶函数 filter------------");
var persons = [
{"name":"lili",
"sex":"female",
"age":18},
{"name":"zack",
"sex":"male",
"age":20},
{"name":"ruby",
"sex":"female",
"age":24},
{"name":"leo",
"sex":"male",
"age":30},
{"name":"lucy",
"sex":"female",
"age":35},
];
var passedBySex = persons.filter(
function(person){
return person.sex=="male";
});
console.log(passedBySex);
//数组中的高阶函数 map
console.log("------------数组中的高阶函数 map------------");
var mapName = passedBySex.map(
function(person){
return person.name;
});
console.log("单项数据映射name:",mapName);
var personsNameAndAge = persons.map(
function(person){
return {"name":person.name,"age":person.age};
});
console.log("多项数据映射name和age:",personsNameAndAge);
//数组中的高阶函数 reduce
console.log("------------数组中的高阶函数 reduce------------");
var personsAge = persons.map(function(person){return person.age;});
var reduceAge = personsAge.reduce(
function(a,b){
return a+b;
});
console.log(reduceAge,persons[0].age+persons[1].age);
此外数组中还有两个标准方法,分别是every和some,every函数的作用类似于运算符&&,some函数的作用类似于||
var numbers = [11,12,13,14,22,23]; var test=numbers.every(function(num){ return num>10; }); console.log(test); test=numbers.some(function(num){ return num>16; }); console.log(test);
相关文章推荐
- javascript数组常用方法
- javascript对数组的常用操作代码 数组方法总汇
- javascript中数组的多种定义方法和常用函数简介
- javascript数组常用方法
- javascript中数组常用方法总结
- Javascript数组常用方法[包含MS AJAX.NET的prototype扩展方法]示例
- Javascript中数组(Array)常用的方法
- javascript中数组的多种定义方法和常用函数简介
- javascript中常用数组函数
- javascript数组的申明方式以及常用方法
- javascript数组常用方法
- 【javascript】数组对象常用 api
- javascript数组常用方法
- javascript的数组和常用函数详解
- javascript中 数组的常用方法 实例
- JavaScript数组常用方法汇总
- javascript 中 数组常用的扩展方法
- JavaScript数组常用操作
- javascript 常用的数组操作
- javascript数组的申明方式以及常用方法