JavaScript数组扁平化flat与flatMap处理嵌套数据

JavaScript数组扁平化指将多层嵌套数组压平为一层,flat()按指定深度展开(默认1层,Infinity可完全扁平),flatMap()先映射再扁平一层,二者语义清晰、性能好、可读性强,是现代项目的首选方案。JavaScript中数组扁平化是指将多层嵌套的数组"压平"成一层,便于后续处理。flat() 和 flatMap() 是ES2019引入的两个原生方法,专门用于简化嵌套数据操作,比手写递归或reduce更简洁、可读性更强。flat():按指定深度展开嵌套数组flat() 返回一个新数组,将原数组中所有子数组(按指定深度)的元素依次取出,合并到结果中。不修改原数组。语法:arr.flat(depth),depth 默认为 1,即只展开一层;传入 Infinity 可完全扁平化任意深度嵌套。1, \[2, 3, 4, \[5]].flat() → 1, 2, 3, 4, \[5](只展一层)1, \[2, 3, 4, \[5]].flat(2) → 1, 2, 3, 4, 5(展两层)1, \[2, \[3, \[4]]].flat(Infinity) → 1, 2, 3, 4注意:flat() 会跳过空槽(empty slots),比如 1, , 3.flat() 得到 1, 3;但不会过滤 undefined 或 null 元素。立即学习"Java免费学习笔记(深入)";flatMap():先映射再扁平(深度为1)flatMap() 相当于先调用 map(),再对结果执行 flat(1)。它只扁平一层,且必须配合映射函数使用,适合"生成并展平"的场景。语法:arr.flatMap(callback),callback 返回数组(或非数组值),最终结果自动展平一层。 千面数字人 千面 Avatar 系列:音频转换让静图随声动起来,动作模仿让动漫复刻真人动作,操作简单,满足多元创意需求。

相关推荐
桃西西呀1 分钟前
国内金价破 1000,「涨了多少」和「该买多少」是数学问题
人工智能·python·数据分析
张人玉5 分钟前
茶树 NeRF(Neural Radiance Fields,神经辐射场)三维重建与数据分析可视化系统——基于神经辐射场的茶树三维重建方法实现可视化大屏
python·数据挖掘·数据分析·echarts·three.js
脉动数据行情18 分钟前
Python WebSocket 国内商品期货|螺纹钢 & 铁矿石实时行情监听
开发语言·python·websocket
增量星球11 分钟前
embedding专题之向量化革命:从关键词到语义检索
数据库·embedding
夕除11 分钟前
redis--008
java·jvm·数据库
烬羽20 分钟前
一个博客系统,为什么要拆成 6 张表?
数据库·mysql
liangbo721 分钟前
JVM规范第 1章:从一段历史到「JVM 并不认识 Java」
java·jvm
程序员-Benothing22 分钟前
MySQL 中的日志类型有哪些?binlog、redo log 和 undo log 的作用和区别是什么?
数据库·mysql
XuCoder25 分钟前
你写的每条 SQL 都没加过锁,可 MySQL 凭什么不怕两个事务打架?
数据库·后端
circuitsosk31 分钟前
智能体任务拆解与执行:基于ReAct+Plan-and-Execute框架的行业Skill构建实录
前端·javascript·python·react.js·react·llm agent·智能体编排