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);
JavaScript基础 - 24 (数组方法:every、some、forEach、map、filter、reduce)相关推荐
- Javascript常用的数组方法
Javascript常用的数组方法 数组 定义:计算机内存中一段连续的空间: 数组的几种常用方法 1.splice:可对数组进行增.删.改的操作: 2.push:给数组的末尾添加一个或多个元素: 3. ...
- js数组中forEach/some/every/map/filter/reduce的区别
2019独角兽企业重金招聘Python工程师标准>>> // js数组中forEach/some/every/map/filter/reduce的区别// 1. foreach:就是 ...
- 分享20个Javascript中的数组方法,收藏
什么是数组?与其他编程语言中的数组一样,Array对象允许在一个变量名称下存储多个项的集合,并且具有用于执行常见数组操作的成员. 声明数组 我们可以用两种不同的方式声明数组. 使用新阵列 使用new ...
- JavaScript中的数组方法和循环
1.基本概念 JavaScript 数组用于在单一变量中存储多个值.是一个具有相同数据类型的一个或多个值的集合 2.创建数组的三种方法 (1)使用JavaScript关键词 new 一个Array对象 ...
- 15+ Javascript 中的数组方法
什么是 JS 中的数组? Array 对象与其他编程语言中的数组一样,可以将多个项目的集合存储在单个变量名下,并具有用于执行常见数组操作的成员. 声明数组 我们可以用两种不同的方式声明数组. 使用新数 ...
- javascript字典中添加数组_如何在JavaScript中使用数组方法:Mutator方法
JavaScript中的数组由元素列表组成.JavaScript有许多有用的内置方法来处理数组.修改原始数组的方法称为mutator方法,返回新值或表示的方法称为accessor方法.在本教程中,我们 ...
- JavaScript中常用数组方法总结
工作中发现掌握好数组和对象中所有方法,并灵活运用,绝对能大大提高你的编程效率,那还想什么呢,总结起来~ 目录 push()后增方法 pop()后删方法 shift()前删方法 unshift()前增方 ...
- ES5-15 数组基础、数组方法、数组排序
创建数组 字面量 var arr = [] 构造函数 var arr = new Array() 不使用new var arr = Array() 所有数组都继承于Array.prototype,能使 ...
- javascript学习之数组的使用二 forEach方法
array.forEach( function(value , index , object) { }); value保存数组的值 index保存数组的索引 object保存数组本身 都可缺省 v ...
最新文章
- Oozie 配合 sqoop hive 实现数据分析输出到 mysql
- Windows 技巧篇 - cmd的复制和粘贴功能
- 2019年春季学期第四周作业
- MySQL 高级 - 视图 - 概述
- CNKI中银屑病、大肠菌群、内毒素LPS(调研手稿三)
- linux的文件解压命令,linux解压命令(linux解压文件命令)
- 结合使用 Oracle Coherence 和 Spring Batch 进行高性能数据处理
- ucore 地址映射的几个阶段
- 人生的一切问题,归根结底就是这三点:无知!恐惧!延迟!
- html怎么实现年月日的选择,利用select实现年月日三级联动的日期选择效果【推荐】...
- linux常用命令课堂总结
- 关于meta name=viewport content=width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalabl...
- pytorch 常用目标检测评价指标总结
- Linux Mysql8.0安装
- 如何写 [文献综述]
- ThankPHP5.0增加中英文转换(tp5语言翻译)
- 乒乓球捡球机器人_上海15岁初中女生,发明捡乒乓球机器人
- 工欲善其事必先利其器(Windows)
- Ubuntu 16.04 ZR300驱动安装
- 小陈学js while练习
热门文章
- 【NOIP2016提高A组集训第12场11.10】灵知的太阳信仰
- NestJS 7.x 折腾记: (3) 采用nestjs-pino作为Nest logger
- 制作mac os x lion启动盘
- CentOS7没有图形化界面,怎么安装图形化界面
- MySQL基础命令及练习题(一)
- keyboard speed
- 网站繁简切换的JS遇到的一个BUG
- 使用Docker搭建自己的在线密码管理器软件-Bitwarden
- 虚拟机设置共享文件夹不显示
- AdaCliP: Adaptive Clipping for Private SGD