js中map()、some()、every()、filter()的区别
js的Array对象有map、some、every、filter几个方法都能对数组中的每个对象进行处理,但是他们之间的功能又各有差别,所以在记下。
- map():通过指定函数处理数组的每个元素,并返回处理后的数组。
1 var numbers = [4, 9, 16, 25];
2
3 function myFunction() {
4 console.log(numbers.map(Math.sqrt));
5 }
输出结果为:
2,3,4,5
map() 方法会将数组中元素依次传入方法中,并将方法的返回结果组成新数组返回。
传入的function可以有自己的三个形参,currentValue, index,arr分别代表当前元素,元素索引,元素所属数组对象;其中currentValue是必须的。
注意:map不会改变原数组,map不会检查空数组
- some():用于检测数组中的元素是否满足指定条件(函数提供)

1 var ages = [3, 10, 18, 20];
2
3 function checkAdult(age) {
4 return age >= 18;
5 }
6
7 function myFunction() {
8 console.log(ages.some(checkAdult));
9 }

输出为:true
some方法会依次执行数组的每个元素;
- 如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测
- 如果没有满足条件的元素,则返回false
- function形参和map一样
注意:some不会改变原数组,some不会检查空数组
- every:用于检测数组所有元素是否都符合指定条件(通过函数提供)

1 var ages = [32, 33, 16, 40];
2
3 function checkAdult(age) {
4 return age >= 18;
5 }
6
7 function myFunction() {
8 console.log(ages.every(checkAdult));
9 }

输出结果:false
every和some正好相反:
- 如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
- 如果所有元素都满足条件,则返回 true。
- function形参同上
注意:some不会改变原数组,some不会检查空数组
- filter:创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素

1 var ages = [32, 33, 16, 40];
2
3 function checkAdult(age) {
4 return age >= 18;
5 }
6
7 function myFunction() {
8 console.log(ages.filter(checkAdult));
9 }

输出结果:
|
1
|
32,33,40 |
filter会根据函数中的筛选条件将返回的结果组成一个新的数组并返回
js中map()、some()、every()、filter()的区别的更多相关文章
- 【前端】js中new和Object.create()的区别
js中new和Object.create()的区别 var Parent = function (id) { this.id = id this.classname = 'Parent' } Pare ...
- JS中的== 、===的用法和区别。
JS中的== .===的用法和区别.[转] == 和 != 比较若类型不同,先偿试转换类型,再作值比较,最后返回值比较结果 . 而 === 和 !== 只有在相同类型下,才会比较其值 ======= ...
- JS中三目运算符和if else的区别分析与示例
本文是通过示例详细分析了JS中三目运算符和if else的区别,是篇非常不错的文章,这里推荐给大家. 今天写了一个图片轮播的小demo,用到了判断 先试了一下if else,代码如下: 复制代码代 ...
- js中callback.call()和callback()的区别
js中callback.call()和callback()的区别在js中callback.call()和callback() 有什么区别,举个例子:function a(){alert('hello! ...
- 网站开发进阶(二十)JS中window.alert()与alert()的区别
JS中window.alert()与alert()的区别 前言 alert与window.alert没什么区别,如果有人觉得有区别,那就来解释一下:所有以window.开始的语句,都可以直接把wind ...
- Js中Map对象的使用
Js中Map对象的使用 1.定义 键/值对的集合. 2.语法 mapObj = new Map() 3.备注 集合中的键和值可以是任何类型.如果使用现有密钥向集合添加值,则新值会替换旧值. 4.属性 ...
- JS中==、===和Object.is()的区别
JS中==.===和Object.is()的区别 首先,先粗略了解一下这三个玩意儿: ==:等同,比较运算符,两边值类型不同的时候,先进行类型转换,再比较: ===:恒等,严格比较运算符,不做类型转换 ...
- 项目中一次排序规则的改动,注意到js中map的遍历的顺序
背景:项目需要对前端页面上某个插件的下拉选择项进行排序,需要按照配置的顺序显示. 首先调查后台,发现sql语句中已经添加order by.之后发现查询结果遍历后封装进HashMap,这里改为LinkH ...
- JS中map与forEach的区别
很多同学可能对于map与forEach的区别不是太了解,今天我们介绍一下JS中的map与forEach方法, 我对map的理解是,这个方法对一个数组arr1中的每一个元素进行遍历(传递给一个数组,参数 ...
- js中map和python中的map
js 中的map: 由于map()方法定义在JavaScript的Array中,我们调用Array的map()方法,传入我们自己的函数,就得到了一个新的Array作为结果: function pow( ...
随机推荐
- zabbix配置自定义监控
目录 zabbix配置自定义监控项---进程监控 1. 编写获取进程状态的脚本 2. 修改配置文件,添加自定义key 3. 配置监控项 4. 添加触发器 5. 媒介和动作 6. 触发并验证 zabbi ...
- lamp分离部署
目录 lamp分离部署 1. 安装httpd 2. 安装mysql 3. 安装php 4. 配置apache并部署项目 4.1 启用代理模块 4.2 配置虚拟主机 4.3 部署PbootCMSPHP企 ...
- tracebace用法
介绍一下traceback 平时看到的程序的错误信息也就是traceback信息 举个简单例子: import traceback try: s = [1, 2, 3] print s[5] exce ...
- 物联网实验Arduino(1)
回顾 我们使用的平台: Arduino 入门实验1 眨眼睛 /* Blink Turns an LED on for one second, then off for one second, repe ...
- Python稳居编程语言榜首,看完这篇总结,你就明白为什么要学它了
最近,网上流传一组<人工智能实验教材>的图片,照片火起来的原因是教材是为幼儿园的小朋友们设计的! Python被列入小学.初高中教材已不是新鲜事,现在又成功“入侵”了幼儿园,对此有网友调侃 ...
- QComboBox设置下拉item大小
1.首先给ComboBox设置view: ui->comboBox->setView(new QListView()); 注意:这一句需要放在在所在界面的构造函数里,否则不生效. 2.给c ...
- 初步理解@Transactional注解
在SSM项目中,经常在业务层的类或者方法上看到@Transactional注解,只是知道这个注解的作用是进行事务管理,但是具体有哪些属性,在什么情况下进行回滚,确是不那么清楚.所以在网上看了一些视频和 ...
- 用Python一键生成炫酷九宫格图片,火了朋友圈
- 【av68676164(p51-p53)】虚拟内存管理(2)
虚拟内存管理(2) 7.3.4 缺页终端 分级存储体系 cache+内存+辅存 页表扩充-带中断位的页表 页号 页框号 中断位I 辅存地址 访问位 修改位 1 1 0 0 0 1 中断位I-标志该页是 ...
- Windows10上安装Linux子系统(WSL2,Ubuntu),配合Windows Terminal使用
Linux 的 Windows 子系统可让开发人员按原样运行 GNU/Linux 环境 - 包括大多数命令行工具.实用工具和应用程序 - 且不会产生传统虚拟机或双启动设置开销. WSL 说白了安装Li ...