map,filter,some,every,find方法的区别(通俗易懂)

2023-10-27

map,filter,some,every都是原数组不受改变,而foreach是在原数组上改变

 map:返回新数组,在原数组上进行数据处理,只会在原有数组上元素内容改变,数组长度不变

 filter: 返回新数组,在原数组上判断是否满足条件来进行数据过滤,只会在原有数组上长度改变,元素内容不变

 some: 返回布尔值(一真则真),在原数组上判断是否满足条件,只要里面元素有一个满足条件则返回true,并且停止遍历

every:返回布尔值(一假则假),在原数组上判断是否满足条件,必须里面元素全部满足条件才会返回true

find: 返回原数组中第一个满足条件的那个元素

下面挨个演示:

map:

// 新数组 = 原数组.map(item => {return..})  item是数组里的每一个元素
// 新数组 = 原数组.map(item => ({})) 如果箭头函数体用括号包裹则自动return括号里面的值到新数组
let arr = [1, 2, 3, 4, 5]
let result = arr.map(item => {
    return item + 1;
})
console.log(result) //结果:[2,3,4,5,6]
    // map可以用在改变接口返回值的属性名或者改变返回值的结构上
let res = [
    // 后端返回接口数据,但是前端需要的是 id 和 value属性名
    {
        sid: 1,
        name: 'xjw'
    },
    {
        sid: 1,
        name: 'xjw'
    },
    {
        sid: 1,
        name: 'xjw'
    },
    {
        sid: 1,
        name: 'xjw'
    },
    {
        sid: 1,
        name: 'xjw'
    },
]
let lastRes = res.map(item => ({
    id: item.sid,
    value: item.name
}))
console.log(lastRes)

filter:

// filter:新数组 = 原数组.filter(item => {return 判断条件})
let farr = [1, 2, 3, 4, 5, ]
let flarr = farr.filter(item => {
    return item > 2
})
console.log(flarr) //结果:[3,4,5]

some:

// some:一真则真   变量 = 原数组.some(item => {return 判断条件})
let sarr = [1, 2, 3, 45, 6]
let slarr = sarr.some(item => {
    return item > 40
})
console.log(slarr) //结果:true

every:

// every:一假则假   变量 = 原数组.every(item => {return 判断条件})
let earr = [1, 2, 3, 45, 6]
let elarr = earr.every(item => {
    return item > 40
})
console.log(elarr) //结果:false

find:

// find: 返回满足条件的第一个元素
let fiarr = [1, 2, 3, 4, 5]
let filarr = fiarr.find(item => {
    return item > 2
})
console.log(filarr) //结果:3

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

map,filter,some,every,find方法的区别(通俗易懂) 的相关文章

随机推荐

  • 遗传算法的matlab实现

    遗传算法 Genetic Algorithm GA 是20世纪70年代初兴起的一门新兴学科 遗传算法的基本思想来源于达尔文的进化论和孟德尔的遗传学说 它通过模拟生物进化的过程来求解问题 生物中的基因对应优化问题中的变量组合 一个解则代表了一
  • 数据结构与算法 学习摘要

    时间复杂度比较 O 1 lt O logn lt O n lt O nlogn lt O n 2 lt O n 3 线性表 栈 stack 后进先出 队列 queue 先进先出 链表 linkedlist 单链表 双链表 https git
  • Linux8 如何重启网络服务

    本文主要讲解如何重启RHEL 8或者CentOS 8网络以及如何解决RHEL8和CentOS8系统的网络管理服务报错 当我们安装好RHEL 8或者 CentOS 8 重启启动网络时 会出现以下报错 systemctl restart net
  • 板子接线图

    1 ST LINK V2接线 2 对抗板子刷蓝牙固件 接USB转TTL 用镊子短接两个孔 2 对抗板子用串口测试蓝牙AT命令 短接白色箭头 接TX RX 电源
  • 嵌入式开发面试中经常被问到的问题记录

    问题 你能介绍一下你最熟悉的处理器架构及其特点吗 在嵌入式开发中 你通常使用哪些编程语言 对于不同的应用场景 如何选择适合的编程语言 请描述一下您在项目中遇到的最具挑战性的问题 并解释您是如何解决这个问题的 如何设计和实现一个多线程嵌入式系
  • JavaScript:从入门到精通总结二

    7 代码块 1 代码块只有分组的功能 代码块内部的内容 外部完全可见 2 prompt 弹出提示框 并且该提示框会带有一个文本框 返回值是string类型 3 switch语句中条件表达式是进行全等比较 4 可以为循环语句创建一个label
  • spring-data-JPA repository自定义方法规则

    Spring Data JPA框架在进行方法名解析时 会先把方法名多余的前缀截取掉 比如find findBy read readBy get getBy 然后对剩下的部分进行解析 假如创建如下的查询 findByUserDepUuid 框
  • Linux系统管理(五)企业存储的基本管理

    目录 一 设备识别 二 设备挂载 三 设备中文件的查找 四 分区 五 swap分区 六 磁盘配额 一 设备识别 添加硬盘 设备接入系统后都是以文件的形式存在 设备文件名称 串口硬盘 SATA SAS USB dev sda dev sdb
  • 文件共享 无法访问,你可能没有权限使用网络资源,请与这台服务器的管理员联...

    文件或文件夹设置成共享之后 通过 运行 如运行 gt 192 168 0 123 进行访问 报错 192 168 0 123无法访问 你可能没有权限使用网络资源 请与这台服务器的管理员联系 这问题碰到好几回了 每次都是同事帮忙解决的 这次又
  • 什么是xxl-job?

    xxl job是一款开源的分布式任务调度框架 主要用于解决大规模分布式任务的调度和执行问题 它提供了任务调度中心 执行器和任务日志等组件 可以实现任务的定时调度 动态添加和删除任务 任务执行情况的监控和日志记录等功能 xxl job的作用主
  • HTML <ul> 标签

    实例 无序 HTML 列表 ul li Coffee li li Tea li li Milk li ul ul 标签定义无序列表 浏览器支持 元素 Chrome IE Firefox Safari Opera ul Yes Yes Yes
  • cad汉仪长仿宋体_长仿宋体字体下载 cad工程机械绘图工程制图国标字体下载

    做CAD很多时候要用到国标字体 CAD制图上用的国标字体一般就是长仿宋体 特此小编给大家分享 ttf格式的cad工程机械绘图工程制图国标字体下载 长仿宋体字体一般是专门用来做cad工程机械绘制效果图中使用 希望大家喜欢 界面预览图 在很多专
  • zlib库自定义接口封装

    zlib库自定义接口封装 zlib封装类说明 编译zlib库 编译自定义接口静态库 测试代码 代码 文件链接 zlib封装类说明 实现对文件以及文件夹的压缩解压缩 zip unzip h ifndef ZIP UNZIP H define
  • 《剑指offer》:编程实现字符串到整数的装换,模拟实现函数atoi

    题目描述 编程实现字符串到整数的转换 例如输入字符串 123456 输出整数12345 函数atoi atoi 是把字符串转换成整型数的一个函数 包含在头文件stdlib h中 函数原型 int atoi const char nptr 参
  • 电机控制里的谐波和逆变器非线性探讨

    电机控制里的谐波或逆变器非线性探讨 一 逆变器非线性第一个主要原因是死区时间及器件延迟时间 二 逆变器非线性第二原因是功率管的压降 三 逆变器的非线性会引起零电流箝位现象 导致电流波形不够正旋 增大了谐波干扰 并且在一个周期中会有6次电流畸
  • 诚之和:使用Java+Swing实现医院管理系统的实战练习 附完整实例代码

    本篇文章将和大家分享使用Java的Swing工具类来完成医院管理系统的实战练习 有兴趣的小伙伴们可以一起实操学习一下 本文内容有助于大家对于Java的学习和理解 一 系统介绍 本系统实现的以下功能 管理员功能 登录系统 病人信息的增删改查
  • 写一个手机类,属性:品牌brand,价格price 行为:打电话Call,发短信Message,打游戏Game 要用到this和Private的知识点

    初写手机类 这个程序是初步的程序 还有很多细节没补上 等到学到后面再逐渐完善了 class Demond Phone public static void main String args Phone p1 new Phone p1 set
  • centos8 网卡无法启动,且无ip

    centos8 网卡无法启动 且无ip 1 NetworkManger未运行 错误 网络管理器 NetworkManager 未运行 解决 将NetworkManger设置为开机自启动 systemctl enable NetworkMan
  • 《Stable Diffusion WebUI如何下载模型》

    接上一个教程 现在开始使用Stable Diffusion 自己训练模型太花时间了 直接下载别人训练好的模型可以省很多事 左上面stable Diffusion checkpoint就是我们的模型 现在里面什么都没有 1 点击选择上面的Ci
  • map,filter,some,every,find方法的区别(通俗易懂)

    map filter some every都是原数组不受改变 而foreach是在原数组上改变 map 返回新数组 在原数组上进行数据处理 只会在原有数组上元素内容改变 数组长度不变 filter 返回新数组 在原数组上判断是否满足条件来进