JavaScript数组的迭代方法(every、filter、forEach、map和some)

2024-03-12 09:18

本文主要是介绍JavaScript数组的迭代方法(every、filter、forEach、map和some),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

ES5 中为数组定义了 5 个迭代方法。每个方法都接收两个参数:要在每一项上运行的函数和(可选的)运行该函数的作用域对象——影响 this 的值。

传入这些方法中的函数接收三个参数:数组项的值、该项在数组中的位置(索引)和数组对象本身。

这 5 个方法都不会修改原数组中包含的值。


every ( ) 和 some ( )

every ( ) 和 some ( ) 是一对功能比较相近的函数,他们用于查询数组中的项是否满足某个条件。
every ( ) : 对数组中的每一项运行给定函数,如果该函数对每一项都返回 true,则返回 true。
some ( ) : 对数组中的每一项运行给定函数,如果该函数对任一项返回 true,则返回 true。

例如:

var nums = [1, 2, 3, 4, 5, 4, 3, 2, 1];var everyResult = nums.every(function(item, index, array){return (item > 2);
});var someResult = nums.some(function(item, index, array){return (item > 2);
});alert(everyResult)  // false
alert(someResult)   // true

filter ( )

filter ( ) 方法利用指定的函数确定是否存在返回的数组中包含某一项。filter 是过滤器的意思,这个方法也可以理解为对数组过滤,返回符合指定函数要求的数组项组成的数组。

例如:

var filterResult = nums.filter(function(item, index, array){// 返回满足条件的项return (item > 2);
})
alert(filterResult) // 3,4,5,4,3

map ( )

map ( ) 方法也返回一个数组,数组中的每一项都是在原始数组中的对应项上运行传入函数的结果。

这个方法适合创建包含的项与另一个数组一一对应的数组。

例如:

var mapResult = nums.map(function(item, index, array){return item * 2;
})
alert(mapResult)    // 2,4,6,8,10,8,6,4,2

forEach ( )

forEach ( ) 方法只是对数组中的每一项运行传入的函数,这个方法没有返回值。 本质上与使用 for 循环迭代一样。

例如:

nums.forEach(function(item, index, array){// 不会改变原数组item *= 2;
})
alert(nums)	// 1,2,3,4,5,4,3,2,1nums.forEach(function(item, index, array){// 可以改变原数组array[index] *= 2;
})
alert(nums)	// 2,4,6,8,10,8,6,4,2

全部代码

var nums = [1, 2, 3, 4, 5, 4, 3, 2, 1]var everyResult = nums.every(function(item, index, array){return (item > 2);
})var someResult = nums.some(function(item, index, array){return (item > 2);
})var filterResult = nums.filter(function(item, index, array){return (item > 2);
})var mapResult = nums.map(function(item, index, array){return item * 2;
})nums.forEach(function(item, index, array){// item *= 2;array[index] *= 2;
})alert(everyResult)  // false
alert(someResult)   // true
alert(filterResult) // 3,4,5,4,3
alert(mapResult)    // 2,4,6,8,10,8,6,4,2
alert(nums)         // 2,4,6,8,10,8,6,4,2

这篇关于JavaScript数组的迭代方法(every、filter、forEach、map和some)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/800795

相关文章

Mybatis Plus Join使用方法示例详解

《MybatisPlusJoin使用方法示例详解》:本文主要介绍MybatisPlusJoin使用方法示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录1、pom文件2、yaml配置文件3、分页插件4、示例代码:5、测试代码6、和PageHelper结合6

MySQL JSON 查询中的对象与数组技巧及查询示例

《MySQLJSON查询中的对象与数组技巧及查询示例》MySQL中JSON对象和JSON数组查询的详细介绍及带有WHERE条件的查询示例,本文给大家介绍的非常详细,mysqljson查询示例相关知... 目录jsON 对象查询1. JSON_CONTAINS2. JSON_EXTRACT3. JSON_TA

Java中实现线程的创建和启动的方法

《Java中实现线程的创建和启动的方法》在Java中,实现线程的创建和启动是两个不同但紧密相关的概念,理解为什么要启动线程(调用start()方法)而非直接调用run()方法,是掌握多线程编程的关键,... 目录1. 线程的生命周期2. start() vs run() 的本质区别3. 为什么必须通过 st

关于跨域无效的问题及解决(java后端方案)

《关于跨域无效的问题及解决(java后端方案)》:本文主要介绍关于跨域无效的问题及解决(java后端方案),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录通用后端跨域方法1、@CrossOrigin 注解2、springboot2.0 实现WebMvcConfig

Java SWT库详解与安装指南(最新推荐)

《JavaSWT库详解与安装指南(最新推荐)》:本文主要介绍JavaSWT库详解与安装指南,在本章中,我们介绍了如何下载、安装SWTJAR包,并详述了在Eclipse以及命令行环境中配置Java... 目录1. Java SWT类库概述2. SWT与AWT和Swing的区别2.1 历史背景与设计理念2.1.

使用SpringBoot整合Sharding Sphere实现数据脱敏的示例

《使用SpringBoot整合ShardingSphere实现数据脱敏的示例》ApacheShardingSphere数据脱敏模块,通过SQL拦截与改写实现敏感信息加密存储,解决手动处理繁琐及系统改... 目录痛点一:痛点二:脱敏配置Quick Start——Spring 显示配置:1.引入依赖2.创建脱敏

SpringBoot 中 CommandLineRunner的作用示例详解

《SpringBoot中CommandLineRunner的作用示例详解》SpringBoot提供的一种简单的实现方案就是添加一个model并实现CommandLineRunner接口,实现功能的... 目录1、CommandLineRunnerSpringBoot中CommandLineRunner的作用

Java死锁问题解决方案及示例详解

《Java死锁问题解决方案及示例详解》死锁是指两个或多个线程因争夺资源而相互等待,导致所有线程都无法继续执行的一种状态,本文给大家详细介绍了Java死锁问题解决方案详解及实践样例,需要的朋友可以参考下... 目录1、简述死锁的四个必要条件:2、死锁示例代码3、如何检测死锁?3.1 使用 jstack3.2

C#之List集合去重复对象的实现方法

《C#之List集合去重复对象的实现方法》:本文主要介绍C#之List集合去重复对象的实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C# List集合去重复对象方法1、测试数据2、测试数据3、知识点补充总结C# List集合去重复对象方法1、测试数据

Java日期类详解(最新推荐)

《Java日期类详解(最新推荐)》早期版本主要使用java.util.Date、java.util.Calendar等类,Java8及以后引入了新的日期和时间API(JSR310),包含在ja... 目录旧的日期时间API新的日期时间 API(Java 8+)获取时间戳时间计算与其他日期时间类型的转换Dur