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

常用的遍历方法用途和运用

最近写代码,用到的遍历方法有点多。总结一下,方便后面需要的时候查看。需要的可以收藏。先写基本的用途和运用,后续遇到好的例子会更改。如果简单的例子还没有理解,这里每一条都会附上mdn官方的描述。

一、map

  • 用途:对数组中的每个元素执行回调函数,并返回一个新数组,新数组中的元素是回调函数的返回值。
  • 返回值:新数组,长度与原数组相同。
  • 是否改变原数组:否。
  • mdn描述
  • 示例
    const arr = [1, 2, 3]; 
    const newArr = arr.map(x => x * 2); 
    console.log(newArr); // [2, 4, 6]

二、some

  • 用途:检查数组中是否至少有一个元素满足回调函数的条件。
  • 返回值:布尔值(true 或 false),只要有一个元素满足条件即返回 true,否则返回 false
  • 是否改变原数组:否。
  • mdn描述
  • 示例
    const arr = [1, 2, 3]; 
    const hasEven = arr.some(x => x % 2 === 0); 
    console.log(hasEven); // true

三、forEach

  • 用途:对数组中的每个元素执行回调函数,但不返回值。
  • 返回值undefined
  • 是否改变原数组:否(除非在回调函数中显式修改原数组)。
  • mdn描述
  • 示例
    const arr = [1, 2, 3]; 
    arr.forEach(x => console.log(x)); // 1, 2, 3

四、filter

  • 用途:过滤数组,返回一个包含所有满足回调函数条件的元素的新数组。
  • 返回值:新数组,长度可能小于或等于原数组。
  • 是否改变原数组:否。
  • mdn描述
  • 示例
    const arr = [1, 2, 3]; 
    const evenNumbers = arr.filter(x => x % 2 === 0); 
    console.log(evenNumbers); // [2]

五、reduce

  • 用途:对数组中的每个元素执行回调函数,将数组缩减为单个值(可以是任意类型,如数字、字符串、对象等)。
  • 返回值:回调函数累计计算的结果。
  • 是否改变原数组:否。
  • mdn描述
  • 示例
    const arr = [1, 2, 3];
     const sum = arr.reduce((acc, x) => acc + x, 0); 
    console.log(sum); // 6

六、every

  • 用途:检查数组中的每个元素是否都满足回调函数的条件。
  • 返回值:布尔值(true 或 false),只有所有元素都满足条件时才返回 true,否则返回 false
  • 是否改变原数组:否。
  • mdn描述
  • 示例
    const arr = [1, 2, 3]; 
    const allEven = arr.every(x => x % 2 === 0); 
    console.log(allEven); // false

七、find

  • 用途:返回数组中第一个满足回调函数条件的元素。
  • 返回值:找到的元素,如果未找到则返回 undefined
  • 是否改变原数组:否。
  • mdn描述
  • 示例
    const arr = [1, 2, 3]; 
    const firstEven = arr.find(x => x % 2 === 0); 
    console.log(firstEven); // 2

八、findIndex

  • 用途:返回数组中第一个满足回调函数条件的元素的索引。
  • 返回值:找到的元素的索引,如果未找到则返回 -1
  • 是否改变原数组:否。
  • mdn描述
  • 示例
    const arr = [1, 2, 3]; 
    const firstEvenIndex = arr.findIndex(x => x % 2 === 0); 
    console.log(firstEvenIndex); // 1

九、flatMap

  • 用途:先对数组中的每个元素执行 map 操作,然后将结果“扁平化”一层。
  • 返回值:新数组。
  • 是否改变原数组:否。
  • mdn描述
  • 示例
    const arr = [1, 2, 3]; 
    const flattened = arr.flatMap(x => [x, x * 2]); 
    console.log(flattened); // [1, 2, 2, 4, 3, 6]

十、总结对比

方法用途返回值是否改变原数组
map对每个元素执行回调,返回新数组新数组
some检查是否有元素满足条件布尔值
forEach对每个元素执行回调,无返回值undefined
filter过滤满足条件的元素新数组
reduce将数组缩减为单个值任意类型
every检查是否所有元素都满足条件布尔值
find返回第一个满足条件的元素元素或 undefined
findIndex返回第一个满足条件的元素的索引索引或 -1
flatMap先 map 再扁平化一层新数组
http://www.dtcms.com/a/77239.html

相关文章:

  • QT学习笔记1
  • 【在数轴上找最优位置,使移动距离最短】
  • 【区块链 + 商贸零售】商小萌小程序 | FISCO BCOS 应用案例
  • uniapp路由跳转导致页面堆积问题
  • 51单片机和STM32 入门分析
  • RSA后台解密报错:javax.crypto.BadPaddingException: Message is larger than modulus
  • 4.1--入门知识扫盲,ISO知识体系介绍(看一遍,协议啥的全部记住)
  • Android Zygote的进程机制
  • nginx配置txt文件点击链接后下载
  • 【ES6新特性】默认参数常见用法
  • (C语言)斐波那契数列(递归求解)
  • uniapp-x vue 特性
  • 通过 API 将Deepseek响应流式内容输出到前端
  • 论文精度:Transformers without Normalization
  • 提示词模板
  • KNN算法性能优化技巧与实战案例
  • vuex持久化存储,手动保存到localStorage,退出登录时清空vuex及localStorage
  • 【数据库】掌握MySQL事务与锁机制-数据一致性的关键
  • Vue:单文件组件
  • Spring Boot 启动顺序
  • k8s-coredns-CrashLoopBackOff 工作不正常
  • QT多媒体播放器类:QMediaPlayer
  • ollama搭建deepseek调用详细步骤
  • flutter 专题 九十八 Flutter 1.7正式版发布
  • EmbodiedSAM:在线实时3D实例分割,利用视觉基础模型实现高效场景理解
  • I211学习笔记
  • vue3:request.js中请求方法,api封装请求,方法请求
  • 28.Vulmap:Web 漏洞扫描与验证工具
  • Unity | 工具类:单例总结
  • Windows安装MySQL5.7.26教程图解