当前位置: 首页 > 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 再扁平化一层新数组

相关文章:

  • 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 启动顺序
  • 下周或迎外贸“抢出口”高峰,跨境电商敏感货物如何便利化“登机”?
  • 上海虹桥国际咖啡文化节开幕,推出茶咖文化特色街区、宝妈咖啡师培训
  • 中国证券业协会修订发布《证券纠纷调解规则》
  • 曾犯强奸罪教师出狱后办教培机构?柳州鱼峰区教育局:正核实
  • 中欧金融工作组第二次会议在比利时布鲁塞尔举行
  • 四部门:强化汛期农业防灾减灾,奋力夺取粮食和农业丰收