es 数组的方法

数组的方法

flatmap 

some 

every

好,那我直接给你一份高频对比表,先把核心差异记住。

方法对比(是否短路 / 返回值 / 是否改原数组)

  1. some
  • 含义:是否至少一个满足条件
  • 短路:是(找到一个就停)
  • 返回:布尔值
  • 改原数组:否
  1. every
  • 含义:是否全部满足条件
  • 短路:是(遇到一个不满足就停)
  • 返回:布尔值
  • 改原数组:否
  1. find
  • 含义:找第一个满足条件的元素
  • 短路:是
  • 返回:元素或 undefined
  • 改原数组:否
  1. findIndex
  • 含义:找第一个满足条件元素的下标
  • 短路:是
  • 返回:下标或 -1
  • 改原数组:否
  1. filter
  • 含义:筛选出所有满足条件元素
  • 短路:否
  • 返回:新数组
  • 改原数组:否
  1. map
  • 含义:一对一映射成新数组
  • 短路:否
  • 返回:新数组
  • 改原数组:否
  1. reduce
  • 含义:归并成一个值(和、对象、分组等)
  • 短路:否(通常遍历完)
  • 返回:任意类型(由初始值和逻辑决定)
  • 改原数组:否
  1. forEach
  • 含义:遍历执行副作用
  • 短路:否(不能用 break)
  • 返回:undefined
  • 改原数组:看你在回调里是否手动改
  1. includes
  • 含义:是否包含某个值
  • 短路:是(找到就停)
  • 返回:布尔值
  • 改原数组:否

一组最小示例(同一数据)

  • 数组:[1, 3, 5, 8]

  • some(x > 6) -> true

  • every(x > 0) -> true

  • find(x % 2 === 0) -> 8

  • findIndex(x % 2 === 0) -> 3

  • filter(x % 2 === 1) -> [1, 3, 5]

  • map(x * 2) -> [2, 6, 10, 16]

  • reduce((s, x) => s + x, 0) -> 17

  • includes(3) -> true

记忆口诀

  1. 判真假:some / every / includes
  2. 找一个:find / findIndex
  3. 产新数组:map / filter
  4. 汇总一个值:reduce
  5. 只遍历做事:forEach

如果你愿意,我下一条可以给你“面试版陷阱题”,比如 some 和 every 在空数组上的结果为什么不同。

posted on 2026-06-06 17:00  漫思  阅读(4)  评论(0)    收藏  举报

导航