700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > JavaScript基础 - 24 (数组方法:every some forEach map filter reduce)

JavaScript基础 - 24 (数组方法:every some forEach map filter reduce)

时间:2020-03-02 02:55:33

相关推荐

JavaScript基础 - 24 (数组方法:every some forEach map filter reduce)

1、参数为回调函数,function(数组中的项目,序号,数组本身){ },至少接收一个项目(item、value)参数

① every

数组中所有内容都满足回调函数的测试,返回值才为true,否则false,遇假停止,返回false

//value是数组中的每个元素的值,这个匿名函数会被数组循环调用var res = nums.every(function(value){//其中内容就是对值的判断条件,例如验证<50console.log(`当前判断的值是:${value}`);return value<50;});//如果匿名函数中的判断,都是真的,则最终的every的返回值就是真//有任何假的,则返回值就是假console.log(res);//判断都是偶数var res1 = nums.every(function(value,index,array){//匿名函数共有3个参数:值 值的索引 当前数组。后两个参数使用太少了console.log(`${value},${index},[${array}]`);return value%2 == 0;})

②some

数组中内容存在任意一个满足回调函数的测试的,返回值为true, 否则false,遇真停止,返回

var teachers = [{name:"lily",age:39,married:true},{name:"tom",age:27,married:false},{name:"jack",age:22,married:true},{name:"lucy",age:36,married:false},];//判断数组中,是否存在年龄>35的人var result = teachers.some(function(item,index,arr){return item.age>35});console.log(result?"有人年龄>35":"没有年龄>35的");//判断是否有已婚的var result = teachers.some(function(item){return item.married})console.log(result?"有已婚":"没已婚");

③forEach

遍历数组, 每个数组元素都被 回调函数处理

//数组的forEach方法:快速遍历数组var emps = [{name:"丫丫",age:36},{name:"久久",age:19},{name:"明明",age:23},] //为每个年龄+1emps.forEach(function(item){item.age++;})//年龄翻一倍emps.forEach(function(item){item.age*=2})

④map

创建新数组,新数组由回调函数的返回值组成

//map:创建一个新的数组,数组的值都是回调函数的返回值组成的var names = ["lily", "lucy", "john", "tom"];//回调函数:依然具备三个参数,都是可选的var new_names = names.map(function(item,index,arr){return index + item.toUpperCase()});

⑤filter

创建新数组,满足回调函数中的条件的元素, 会加入到新数组

var emps = [{name:"牛牛",gender:"男",age:20},{name:"丫丫",gender:"女",age:25},{name:"毛毛",gender:"女",age:29},{name:"婷婷",gender:"男",age:32}];//找出所有女性,放在新数组中var girls = emps.filter(function(item){return item.gender == "女"});//找出年龄<30的var young = emps.filter(function(item){return item.age<30});

2、reduce: 合并数组中的元素的内容,形成最终的结果

参数1:回调函数:function (合并后的结果,item,index,arr){ }

参数2:合并结果的初始值

emps.reduce( function(sum,item){return sum + item.salary},0 );

var emps = [{name:"lucy",salary:8000},{name:"mike",salary:5500},{name:"tom",salary:11000},{name:"jerry",salary:7900},];//计算所有工资的总和//forEach写法:var sum = 0;emps.forEach(function(item){sum += item.salary})//reduce 写法://参数1:回调函数:function (合并后的结果,item,index,arr){}//参数2:合并结果的初始值let result = emps.reduce(function(sum,item){return sum + item.salary},0);

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。