当前位置: 首页 > news >正文

js中map,filter,find,foreach的用法介绍

js中map,filter,find,foreach的用法介绍

在 JavaScript 中,数组提供了一些常用的迭代方法,如 mapfilterfindforEach,这些方法允许你对数组中的每个元素进行操作,下面是它们的用法和区别。

1. map()

map() 方法用于遍历数组中的每一个元素,并将每个元素经过操作后的结果返回为一个新的数组,不改变原数组

语法:
const newArray = array.map((element, index, array) => {// return 操作后的新值
});
示例:
const numbers = [1, 2, 3, 4];
const doubled = numbers.map(num => num * 2);console.log(doubled); // 输出: [2, 4, 6, 8]
console.log(numbers); // 原数组: [1, 2, 3, 4]

2. filter()

filter() 方法用于过滤数组中的元素,并返回符合条件的元素组成的新数组不会改变原数组

语法:
const filteredArray = array.filter((element, index, array) => {// return 一个布尔值 (true 或 false)
});
示例:
const numbers = [1, 2, 3, 4, 5];
const evenNumbers = numbers.filter(num => num % 2 === 0);console.log(evenNumbers); // 输出: [2, 4]
console.log(numbers);     // 原数组: [1, 2, 3, 4, 5]

3. find()

find() 方法用于查找数组中第一个符合条件的元素,并返回该元素。如果没有找到符合条件的元素,则返回 undefined不会改变原数组

语法:
const foundElement = array.find((element, index, array) => {// return 一个布尔值 (true 或 false)
});
示例:
const users = [{ id: 1, name: 'John' },{ id: 2, name: 'Jane' },{ id: 3, name: 'Jack' }
];const user = users.find(user => user.id === 2);console.log(user); // 输出: { id: 2, name: 'Jane' }

4. forEach()

forEach() 方法用于遍历数组中的每一个元素并执行给定的操作,不会返回任何值,也不会改变原数组。它的作用只是执行循环操作。

语法:
array.forEach((element, index, array) => {// 执行某些操作
});
示例:
const numbers = [1, 2, 3, 4];
numbers.forEach(num => console.log(num * 2));// 输出: 
// 2
// 4
// 6
// 8

主要区别:

  • map():对每个元素执行操作并返回一个新数组。
  • filter():对每个元素进行条件判断,返回符合条件的元素组成的新数组。
  • find():查找并返回第一个符合条件的元素,返回单个元素。
  • forEach():遍历数组并对每个元素执行操作,但不返回值(常用于执行副作用操作,如打印输出)。

小结:

  • map()filter() 都返回新的数组。
  • find() 返回单个元素或 undefined
  • forEach() 不返回任何值,主要用于循环操作。

在这里插入图片描述

相关文章:

js中map,filter,find,foreach的用法介绍

js中map,filter,find,foreach的用法介绍 在 JavaScript 中,数组提供了一些常用的迭代方法,如 map、filter、find 和 forEach,这些方法允许你对数组中的每个元素进行操作,下面是它们的用法和区别…...

Linux 重置 root 密码

如果您在Linux系统中忘记了root密码,可以按照以下步骤重置: 重启系统。在启动时,当GRUB菜单出现时,选择要启动的内核版本,然后按 e 键编辑启动选项。找到以linux或linux16开头的行,它包含了启动内核的命令…...

【含开题报告+文档+PPT+源码】基于SpringBoot+Vue的停车场管理系统

开题报告 随着城市化进程不断加快,汽车保有量持续增长,城市停车问题日益凸显,传统停车场管理手段面临着诸多挑战,诸如管理效率低、人工成本高、信息更新滞后、收费不透明等问题。鉴于此,基于 Web 的智能停车场管理系统…...

博睿数据首届“观测先锋 · 2024 可观测平台创新应用案例大赛”现已启动!

大赛报名火热进行中! 在当今这个数字化、智能化的时代,可观测性技术已经成为企业IT架构中不可或缺的一部分。它能够帮助企业实时监控系统的运行状态,及时发现并解决潜在问题,从而确保业务的稳定性和连续性。博睿数据一体化智能可观…...

笔记:SOME/IP-SD报文中的TTL

问:SOME/IP-SD报文中有几个参数名字都叫的TTL,请问它们有什么不同? 答:在SOME/IP Service Discovery (SOME/IP-SD)协议中,确实有多个与TTL(Time-To-Live)相关的参数,但它们的含义不…...

9.存储过程安全性博客大纲(9/10)

存储过程安全性博客大纲 引言 在数据库系统中,存储过程是一种预先编写好的SQL代码集合,它被保存在数据库服务器上,可以通过指定的名称来调用执行。存储过程可以包含一系列的控制流语句,如IF条件语句、WHILE循环等,使…...

android 打包成aar

1 先建立的空白新工程(不能有activity,直接建立No Activity的项目就行) 2 建立新library 3 填写自己的内容 4 5 如果代码有红色提示的错误,会提示打包失败,修改红色的错误提示就行...

服务器和中转机在网络安全方面

服务器和中转机(代理服务器)在网络安全方面扮演着不同的角色,各自承担着保护网络资源和控制网络访问的重要职责。 它们在网络安全方面的主要作用: 服务器在网络安全中的角色 1.服务保护: 服务器通常运行着各种网络…...

解决“无法从 System.String 强制转换或转换为 Class 对象”错误

解决“无法从 System.String 强制转换或转换为 Class 对象”错误 在进行 API 自动化时,我必须反序列化响应以解析 API 响应数据。我们使用 Newtonsoft.Json NuGet 来实现这一点。 我在反序列化过程中遇到以下错误 - Newtonsoft.Json.JsonSerializationExceptionH…...

Git:LF will be replaced by CRLF、pytest PermissionError以及Git应用中的一些问题解决及一些使用技巧

一、Git:LF will be replaced by CRLF和pytest: --cov NTERNALERROR PermissionError 1. git warning: LF will be replaced by CRLF in ***file 偶然git add在进行代码提交的时候碰到警告warning: LF will be replaced by CRLF in ***file,原因是编辑的代码内容中…...

云原生之运维监控实践-使用taosKeeper与TDinsight实现对TDengine服务的监测告警

背景 如果没有监控,那么最好的情况是没有问题发生,最糟糕的情况则是问题发生了但没有被发现。——《Prometheus监控实战》 在10月10日收到了 TDengine 官方微信公众号的一条推送,摘要如下: 今天(2024年10月10日)我们非常高兴地宣布…...

前端js,vue系统使用iframe嵌入第三方系统的父子系统的通信

前端js,vue系统使用iframe嵌入第三方系统的父子系统的通信 1,父子系统之间的通信问题 父系统给子系统传值可通过postMessage方式进行通信,postMessage(“传递的数据”,url) 1.1 父系统给子系统的传值 let iframe document.getElementById(childFrame); let o1 {…...

树莓派刷入OpenWrt后扩容overlay的方法

问题: 128G的SD卡刷入openwrt后发现可用空间不足100M(我用的squashfs固件,ext4也存在同样的问题,但能否用此方法需要自己尝试一下)。 rootOpenWrt:~# df -h Filesystem Size Used Available Use%…...

【JS】Node.js读取execle表格中的数据

在Node.js中读取.xlsx格式的Excel文件,可以使用xlsx库。这个库非常流行且易于使用。下面是一个基本示例,展示如何使用xlsx库读取.xlsx文件中的数据。 首先,你需要安装xlsx库。你可以使用npm来安装: npm install xlsx然后&#x…...

怎么为pdf文件设置密码?几种PDF文件设置密码的方法推荐

怎么为pdf文件设置密码?设置PDF文件密码,正是应对这一挑战的有效手段之一。通过为PDF文件设置密码,我们能够为文档加上一道安全锁,确保只有掌握密码的用户才能打开和查看文件内容。这一措施不仅保护了文档的隐私性,还防…...

Rust : FnOnce、线程池与多策略执行

一、问题&#xff1a;mpsc如何发送各类不同的函数&#xff1f; 3个关键词&#xff1a;闭包、Box与FnOnce&#xff1b;请细品。 use std::sync::{mpsc,Arc,Mutex}; use std::thread; fn process<F>(old:f32,name:String,f:F) where F: FnOnce(f32,String) {f(old,name);…...

一个汉字占几个字节、JS中如何获得一个字符串占用多少字节?

浅浅记录 一个汉字占几个字节&#xff1f;JS中如何获得一个字符串占用多少字节&#xff1f; 一个汉字占几个字节&#xff1f; GBK编码&#xff1a;一个汉字、中文字符都是占2个字节&#xff0c;英文字符占1个字节 UTF-8编码&#xff1a;一个汉字、中文字符都是占3个字节&#…...

CommonJS 和 ES modules

CommonJS 和 ES modules (ESM) 是两种不同的模块系统&#xff0c;它们用于组织 JavaScript 代码&#xff0c;并允许不同文件之间共享代码。 CommonJS (CJS) CommonJS 是最早的 JavaScript 模块化规范之一&#xff0c;主要用于 Node.js 环境中。CommonJS 规定每个文件都是一个…...

计算机网络——CDN

空间编码例子&#xff1a;不是发送N个相同颜色值&#xff0c;而是仅发送2个值&#xff0c;颜色和重复个数 时间编码例子&#xff1a;不是发送i1帧的全部编码&#xff0c;而是仅发送帧i差别的地方 视频播放时&#xff0c;先下载manifest file文件——>解析&#xff08;不…...

大数据治理:挑战与策略

随着信息技术的飞速发展&#xff0c;大数据已成为当今社会的重要资源。大数据治理作为管理和利用大数据的关键手段&#xff0c;对于提升数据质量、保障数据安全、实现数据价值具有重要意义。本文首先阐述了大数据治理的概念和目标&#xff0c;接着分析了大数据治理面临的挑战&a…...

Llama-3.2V-11B-cot代码实例:Streamlit中图片上传与缓存机制

Llama-3.2V-11B-cot代码实例&#xff1a;Streamlit中图片上传与缓存机制 1. 项目概述 Llama-3.2V-11B-cot是基于Meta Llama-3.2V-11B-cot多模态大模型开发的高性能视觉推理工具&#xff0c;专为双卡4090环境优化。该工具通过Streamlit构建了直观易用的交互界面&#xff0c;特…...

嵌入式系统开发中的关键技术术语解析

嵌入式系统开发中的56个关键技术术语解析1. 数据转换基础概念1.1 采样与保持特性采集时间(Tacq)是从释放保持状态到采样电容电压稳定至新输入值的1 LSB范围之内所需的时间。在采样-保持电路中&#xff0c;这个参数直接影响系统的动态性能。孔径延迟(tAD)描述从时钟信号的采样沿…...

Windows 11安卓子系统实战:无需商店直装APK的终极指南

1. Windows 11安卓子系统核心概念解析 Windows 11安卓子系统&#xff08;Windows Subsystem for Android&#xff0c;简称WSA&#xff09;是微软推出的重磅功能&#xff0c;它让Windows系统首次实现了原生运行安卓应用的能力。这个功能本质上是在Windows内核层构建了一个轻量化…...

Nuitka打包Python脚本为.exe的完整避坑指南(含Selenium解决方案)

Nuitka打包Python脚本为.exe的完整避坑指南&#xff08;含Selenium解决方案&#xff09; 将Python脚本打包成独立的可执行文件是许多开发者面临的常见需求&#xff0c;尤其是当需要分发工具或应用给没有Python环境的用户时。Nuitka作为一款强大的Python编译器&#xff0c;能够将…...

HybridCLR Generate All报错终极解决指南:UnityLinker.exe找不到HotUpdate.dll怎么办?

HybridCLR Generate All报错终极解决指南&#xff1a;UnityLinker.exe找不到HotUpdate.dll怎么办&#xff1f; 当你正在使用HybridCLR进行Unity热更新开发时&#xff0c;突然遇到Generate All报错&#xff0c;提示UnityLinker.exe无法解析HotUpdate.dll&#xff0c;这确实会让人…...

避坑指南:Cypress CYT4B的Mcal CAN配置,这5个参数配错直接通信失败

Cypress CYT4B的Mcal CAN配置实战&#xff1a;5个致命参数解析与避坑策略 实验室里&#xff0c;示波器上的CAN波形杂乱无章&#xff0c;工程师反复检查硬件连接却始终无法建立稳定通信——这可能是许多嵌入式开发者调试CYT4B系列芯片时的真实写照。当硬件排查无果后&#xff0c…...

IP5306电源芯片的‘怪脾气’:实测开机半分钟就休眠?手把手教你两个硬件调试技巧

IP5306电源芯片实战调试&#xff1a;破解自动休眠难题的硬件级方案 实验室里&#xff0c;示波器屏幕上那条本该稳定的电压线突然跌落至零&#xff0c;系统再次陷入休眠——这已经是今天第七次重现IP5306芯片的"怪脾气"。作为一款广泛应用于移动电源的高集成度SOC&…...

通用GUI编程技术——Win32 原生编程实战(十八)——GDI 设备上下文(HDC)完全指南

通用GUI编程技术——Win32 原生编程实战&#xff08;十八&#xff09;——GDI 设备上下文&#xff08;HDC&#xff09;完全指南 前面一系列文章我们聊了对话框、控件、资源这些内容&#xff0c;我们的窗口已经能够显示各种控件了。但你可能已经发现了一个问题&#xff1a;我们所…...

客服服务时长难统计?RPA自动记时长,排班更合理

RPA在客服服务时长统计中的应用客服服务时长的准确统计是优化排班和提高效率的关键。传统手动统计方式存在误差大、效率低等问题。RPA&#xff08;机器人流程自动化&#xff09;技术可以自动记录客服工作时长&#xff0c;为排班提供数据支持。RPA自动记录客服工作时长的实现方式…...

从‘水变油’到‘大师一问三不知’:求实学风如何塑造科学巨匠与避免历史弯路

1. 科学史上的两副面孔&#xff1a;浮夸与求实 1993年&#xff0c;一场名为"水变油"的闹剧在国内掀起轩然大波。某"发明家"声称发明了能将水转化为燃料的"神奇添加剂"&#xff0c;甚至获得了部分政府部门的支持。这个明显违背能量守恒定律的&quo…...