惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Hugging Face - Blog
Hugging Face - Blog
云风的 BLOG
云风的 BLOG
大猫的无限游戏
大猫的无限游戏
M
MIT News - Artificial intelligence
L
LangChain Blog
阮一峰的网络日志
阮一峰的网络日志
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Recent Announcements
Recent Announcements
IT之家
IT之家
Google DeepMind News
Google DeepMind News
罗磊的独立博客
爱范儿
爱范儿
Last Week in AI
Last Week in AI
人人都是产品经理
人人都是产品经理
U
Unit 42
MongoDB | Blog
MongoDB | Blog
S
SegmentFault 最新的问题
B
Blog
博客园 - 叶小钗
月光博客
月光博客
Stack Overflow Blog
Stack Overflow Blog
V
Visual Studio Blog
C
Check Point Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知

博客园 - 漫思

python使用.env构建开发和生产环境 python项目的构建 nodejs构建CICD时的思考  成为 AI 智能体工程师的 10 个步骤 es6的 yield python 中的 yield 笔记本的A壳 thinkpad 更换 reduce() in Python python的字段赋值和取值的操作 python的语法类似于lodash分组展开,合并分组操作 SelectMany C# lodash 数组的常用做法 lodash里面的常用方法 技术的边界 Reduce 和 Transduce 的含义 尤雨溪创办的 VoidZero 官宣加入 Cloudflare,前端 Vite 等保持开源 Ramda 函数库参考教程 ramda flatmap map object.entity的教程 Map与FlatMap:在数据处理中的区别与联系 flat、flatmap与map的用法区别1 flat、flatmap与map的用法区别 AI不是从天而降,它经历了七十年三起三落:读懂AI的第三课 Agent 17 种架构模式 分析 & 思考 只有踩过坑才懂:前端生成唯一 ID,别用 Date.now ()了!试试它crypto.randomUUID() FastAPI python并发 代码是 AI 写的,生产事故谁背锅? AI Agent 走出 Demo 幻觉的唯一解药:Harness Engineering 高管的 AI 精神病
es 数组的方法
漫思 · 2026-06-06 · via 博客园 - 漫思

数组的方法

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 在空数组上的结果为什么不同。