JavaScript基础 - 24 (数组方法:every、some、forEach、map、filter、reduce)
2021/12/2 17:38:56
本文主要是介绍JavaScript基础 - 24 (数组方法:every、some、forEach、map、filter、reduce),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1、参数为回调函数,function(数组中的项目,序号,数组本身){ },至少接收一个项目(item、value)参数
① every
数组中所有内容都满足回调函数的测试,返回值才为true,否则false,遇假停止,返回false
//value是数组中的每个元素的值,这个匿名函数会被数组循环调用 var res = nums.every(function(value){ //其中内容就是对值的判断条件,例如验证<50 console.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}, ] //为每个年龄+1 emps.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);
这篇关于JavaScript基础 - 24 (数组方法:every、some、forEach、map、filter、reduce)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-06小米11i印度快充版ROM合集:极致体验,超越期待
- 2024-10-06【ROM下载】小米11i 5G 印度版系统, 疾速跃迁,定义新速度
- 2024-10-06【ROM下载】小米 11 青春活力版,青春无极限,活力全开
- 2024-10-05小米13T Pro系统合集:性能与摄影的极致融合,值得你升级的系统ROM
- 2024-10-01基于Python+Vue开发的医院门诊预约挂号系统
- 2024-10-01基于Python+Vue开发的旅游景区管理系统
- 2024-10-01RestfulAPI入门指南:打造简单易懂的API接口
- 2024-10-01初学者指南:了解和使用Server Action
- 2024-10-01Server Component入门指南:搭建与配置详解
- 2024-10-01React 中使用 useRequest 实现数据请求