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 系列:音频转换让静图随声动起来,动作模仿让动漫复刻真人动作,操作简单,满足多元创意需求。

相关推荐
毛驴赶鹿6 小时前
【金仓数据库征文】KES V9性能调优实战记录:从慢SQL排查到全链路优化
数据库·sql
码农阿豪6 小时前
【金仓数据库征文】Mac开发环境|SpringBoot3 + MyBatisPlus对接KES V9 Docker实战全指南
数据库·macos·docker
杨云龙UP6 小时前
MySQL 数据库常用备份工具对比:mysqldump、mydumper 与 XtraBackup
linux·运维·服务器·数据库·mysql·dba·备份恢复
ZENERGY-众壹6 小时前
500个工商业电站压垮数据库?海量光伏时序数据存储的架构取舍
数据库·架构·influxdb·光伏·光伏运维
傻啦嘿哟6 小时前
某短视频平台视频爬虫实战:抓取推荐流视频信息,绕过反爬的3种技巧
开发语言·爬虫·python
迷迭香yy7 小时前
集合竞价数据挖掘实战:用Python构建开盘信号识别系统
人工智能·python·数据挖掘
mubei-1237 小时前
SpringDAO的用法
java·开发语言·数据库
李昊哲小课9 小时前
fastapi sse websocket 奶茶店实时订单看板
人工智能·python·websocket·网络协议·fastapi·sse
星蓝_starblue10 小时前
零服务器、零数据库!开源growth-board,利用GitHub自动管理刷题/学习/求职全流程
服务器·数据库·程序人生·系统架构·node.js·github·改行学it
2401_8445829511 小时前
工具包:软件架构设计的实用技巧与经验分享
python