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函数作用域示例详解

《Python函数作用域示例详解》本文介绍了Python中的LEGB作用域规则,详细解析了变量查找的四个层级,通过具体代码示例,展示了各层级的变量访问规则和特性,对python函数作用域相关知识感兴趣... 目录一、LEGB 规则二、作用域实例2.1 局部作用域(Local)2.2 闭包作用域(Enclos

Python实现对阿里云OSS对象存储的操作详解

《Python实现对阿里云OSS对象存储的操作详解》这篇文章主要为大家详细介绍了Python实现对阿里云OSS对象存储的操作相关知识,包括连接,上传,下载,列举等功能,感兴趣的小伙伴可以了解下... 目录一、直接使用代码二、详细使用1. 环境准备2. 初始化配置3. bucket配置创建4. 文件上传到os

解读GC日志中的各项指标用法

《解读GC日志中的各项指标用法》:本文主要介绍GC日志中的各项指标用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、基础 GC 日志格式(以 G1 为例)1. Minor GC 日志2. Full GC 日志二、关键指标解析1. GC 类型与触发原因2. 堆

Java内存分配与JVM参数详解(推荐)

《Java内存分配与JVM参数详解(推荐)》本文详解JVM内存结构与参数调整,涵盖堆分代、元空间、GC选择及优化策略,帮助开发者提升性能、避免内存泄漏,本文给大家介绍Java内存分配与JVM参数详解,... 目录引言JVM内存结构JVM参数概述堆内存分配年轻代与老年代调整堆内存大小调整年轻代与老年代比例元空

Python中注释使用方法举例详解

《Python中注释使用方法举例详解》在Python编程语言中注释是必不可少的一部分,它有助于提高代码的可读性和维护性,:本文主要介绍Python中注释使用方法的相关资料,需要的朋友可以参考下... 目录一、前言二、什么是注释?示例:三、单行注释语法:以 China编程# 开头,后面的内容为注释内容示例:示例:四

mysql表操作与查询功能详解

《mysql表操作与查询功能详解》本文系统讲解MySQL表操作与查询,涵盖创建、修改、复制表语法,基本查询结构及WHERE、GROUPBY等子句,本文结合实例代码给大家介绍的非常详细,感兴趣的朋友跟随... 目录01.表的操作1.1表操作概览1.2创建表1.3修改表1.4复制表02.基本查询操作2.1 SE

MySQL中的锁机制详解之全局锁,表级锁,行级锁

《MySQL中的锁机制详解之全局锁,表级锁,行级锁》MySQL锁机制通过全局、表级、行级锁控制并发,保障数据一致性与隔离性,全局锁适用于全库备份,表级锁适合读多写少场景,行级锁(InnoDB)实现高并... 目录一、锁机制基础:从并发问题到锁分类1.1 并发访问的三大问题1.2 锁的核心作用1.3 锁粒度分

MySQL数据库中ENUM的用法是什么详解

《MySQL数据库中ENUM的用法是什么详解》ENUM是一个字符串对象,用于指定一组预定义的值,并可在创建表时使用,下面:本文主要介绍MySQL数据库中ENUM的用法是什么的相关资料,文中通过代码... 目录mysql 中 ENUM 的用法一、ENUM 的定义与语法二、ENUM 的特点三、ENUM 的用法1

JavaSE正则表达式用法总结大全

《JavaSE正则表达式用法总结大全》正则表达式就是由一些特定的字符组成,代表的是一个规则,:本文主要介绍JavaSE正则表达式用法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录常用的正则表达式匹配符正则表China编程达式常用的类Pattern类Matcher类PatternSynta

MySQL count()聚合函数详解

《MySQLcount()聚合函数详解》MySQL中的COUNT()函数,它是SQL中最常用的聚合函数之一,用于计算表中符合特定条件的行数,本文给大家介绍MySQLcount()聚合函数,感兴趣的朋... 目录核心功能语法形式重要特性与行为如何选择使用哪种形式?总结深入剖析一下 mysql 中的 COUNT