js中filter,map,forEach,indexOf的用法和区别详解

2024-04-07 19:20

本文主要是介绍js中filter,map,forEach,indexOf的用法和区别详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在JavaScript中,filter(), map(), forEach(), 和 indexOf() 是数组对象常用的方法,它们各自具有特定的用途。以下是关于这些方法的详细解释和它们之间的区别:

1. filter()

filter() 方法创建一个新数组,其包含通过所提供函数实现的测试的所有元素。

用法

let newArray = arr.filter(function(currentValue, index, arr) {// 返回 true 或 false
});

或者,使用箭头函数:

let newArray = arr.filter(currentValue => {// 返回 true 或 false
});

示例

let numbers = [1, 2, 3, 4, 5, 6];
let evenNumbers = numbers.filter(num => num % 2 === 0);
console.log(evenNumbers); // 输出: [2, 4, 6]

2. map()

map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。

用法

let newArray = arr.map(function(currentValue, index, arr) {// 返回一个新值
});

或者,使用箭头函数:

let newArray = arr.map(currentValue => {// 返回一个新值
});

示例

let numbers = [1, 2, 3];
let doubled = numbers.map(num => num * 2);
console.log(doubled); // 输出: [2, 4, 6]

3. forEach()

forEach() 方法对数组的每个元素执行一次提供的函数。

用法

arr.forEach(function(currentValue, index, arr) {// 执行某些操作
});

或者,使用箭头函数:

arr.forEach(currentValue => {// 执行某些操作
});

示例

let numbers = [1, 2, 3];
numbers.forEach(num => console.log(num)); // 输出: 1, 2, 3

4. indexOf()

indexOf() 方法返回在数组中可以找到给定元素的第一个索引,如果不存在,则返回-1。

用法

let index = arr.indexOf(searchElement[, fromIndex]);

示例

let numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1];
let index = numbers.indexOf(4); // 输出: 3
let fromIndexIndex = numbers.indexOf(4, 4); // 输出: 5
let notFoundIndex = numbers.indexOf(6); // 输出: -1

区别

  • 返回值filter()map() 返回一个新数组;forEach() 没有返回值(它主要用于执行某些操作,而不是生成新数组);indexOf() 返回元素的索引或-1(如果元素不存在)。
  • 用途filter() 用于筛选数组中的元素;map() 用于转换数组中的每个元素;forEach() 用于遍历数组并执行操作;indexOf() 用于查找数组中元素的索引。
  • 链式调用:由于 filter(), map(), 和 forEach() 都返回数组,因此它们可以链式调用其他数组方法。而 indexOf() 返回一个数字,因此不能链式调用其他数组方法。

希望这些解释和示例能帮助您更好地理解JavaScript中这些方法的用法和区别!

这篇关于js中filter,map,forEach,indexOf的用法和区别详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

python管理工具之conda安装部署及使用详解

《python管理工具之conda安装部署及使用详解》这篇文章详细介绍了如何安装和使用conda来管理Python环境,它涵盖了从安装部署、镜像源配置到具体的conda使用方法,包括创建、激活、安装包... 目录pytpshheraerUhon管理工具:conda部署+使用一、安装部署1、 下载2、 安装3

详解Java如何向http/https接口发出请求

《详解Java如何向http/https接口发出请求》这篇文章主要为大家详细介绍了Java如何实现向http/https接口发出请求,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 用Java发送web请求所用到的包都在java.net下,在具体使用时可以用如下代码,你可以把它封装成一

JAVA系统中Spring Boot应用程序的配置文件application.yml使用详解

《JAVA系统中SpringBoot应用程序的配置文件application.yml使用详解》:本文主要介绍JAVA系统中SpringBoot应用程序的配置文件application.yml的... 目录文件路径文件内容解释1. Server 配置2. Spring 配置3. Logging 配置4. Ma

2.1/5.1和7.1声道系统有什么区别? 音频声道的专业知识科普

《2.1/5.1和7.1声道系统有什么区别?音频声道的专业知识科普》当设置环绕声系统时,会遇到2.1、5.1、7.1、7.1.2、9.1等数字,当一遍又一遍地看到它们时,可能想知道它们是什... 想要把智能电视自带的音响升级成专业级的家庭影院系统吗?那么你将面临一个重要的选择——使用 2.1、5.1 还是

mac中资源库在哪? macOS资源库文件夹详解

《mac中资源库在哪?macOS资源库文件夹详解》经常使用Mac电脑的用户会发现,找不到Mac电脑的资源库,我们怎么打开资源库并使用呢?下面我们就来看看macOS资源库文件夹详解... 在 MACOS 系统中,「资源库」文件夹是用来存放操作系统和 App 设置的核心位置。虽然平时我们很少直接跟它打交道,但了

关于Maven中pom.xml文件配置详解

《关于Maven中pom.xml文件配置详解》pom.xml是Maven项目的核心配置文件,它描述了项目的结构、依赖关系、构建配置等信息,通过合理配置pom.xml,可以提高项目的可维护性和构建效率... 目录1. POM文件的基本结构1.1 项目基本信息2. 项目属性2.1 引用属性3. 项目依赖4. 构

Rust 数据类型详解

《Rust数据类型详解》本文介绍了Rust编程语言中的标量类型和复合类型,标量类型包括整数、浮点数、布尔和字符,而复合类型则包括元组和数组,标量类型用于表示单个值,具有不同的表示和范围,本文介绍的非... 目录一、标量类型(Scalar Types)1. 整数类型(Integer Types)1.1 整数字

Python中@classmethod和@staticmethod的区别

《Python中@classmethod和@staticmethod的区别》本文主要介绍了Python中@classmethod和@staticmethod的区别,文中通过示例代码介绍的非常详细,对大... 目录1.@classmethod2.@staticmethod3.例子1.@classmethod

Java操作ElasticSearch的实例详解

《Java操作ElasticSearch的实例详解》Elasticsearch是一个分布式的搜索和分析引擎,广泛用于全文搜索、日志分析等场景,本文将介绍如何在Java应用中使用Elastics... 目录简介环境准备1. 安装 Elasticsearch2. 添加依赖连接 Elasticsearch1. 创

Redis缓存问题与缓存更新机制详解

《Redis缓存问题与缓存更新机制详解》本文主要介绍了缓存问题及其解决方案,包括缓存穿透、缓存击穿、缓存雪崩等问题的成因以及相应的预防和解决方法,同时,还详细探讨了缓存更新机制,包括不同情况下的缓存更... 目录一、缓存问题1.1 缓存穿透1.1.1 问题来源1.1.2 解决方案1.2 缓存击穿1.2.1