当前位置: 首页 > news >正文

【JS Polyfill】Array.prototype.flat flatMap (数组扁平化) 最近原生的兼容方法

Array.prototype.flat & flatMap (数组扁平化)

  • flat方法创建一个新的数组,并根据指定深度递归地将所有子数组元素拼接到新的数组中。
  • flatMap方法对数组中的每个元素应用给定的回调函数,然后将结果展开一级,返回一个新数组。
  • 原生方法浏览器兼容性参考:https://caniuse.com/array-flat

兼容方案源码

/** * [Polyfill] 数组扁平化 * @param {Number} [depth] 扁平深度 (默认值: 1) * @return {Array} */functionarrayFlat(depth=1){letsource=this,res=[]for(leti=0,l=source.length;i<l;i++){if(!(iinsource))continueletitem=source[i]if(depth>0&&Array.isArray(item)){if(depth>1)item=arrayFlat.call(item,depth-1)for(letn=0,m=item.length;n<m;n++){if(ninitem)res.push(item[n])}}else{res.push(item)}}returnres}/** * [Polyfill] 数组遍历写入并扁平化 * @param {Function} callbackFn 遍历函数。暴露参数: (item: 当前处理元素, index: 当前元素索引, array: 当前调用的数组) * @param {*} thisArg 遍历函数的作用域 * @return {Array} */functionarrayFlatMap(){returnarrayFlat.call(Array.prototype.map.apply(this,arguments),1)}// PolyfillArray.prototype.flat||(Array.prototype.flat=arrayFlat)Array.prototype.flatMap||(Array.prototype.flatMap=arrayFlatMap)
http://www.jsqmd.com/news/1174306/

相关文章:

  • Vivado 2023.1 集成 VSCode 全流程:3步配置语法检查与Testbench生成
  • TB67H480FNG与dsPIC33FJ256GP710A电机控制方案解析
  • 2026电机设备企业海外市场拓展-外贸独立站建设方案 - 外贸营销驿站
  • 订单秒级响应不是梦:基于LLM+RAG+Workflow的AI Agent自动处理系统(含PCI-DSS合规认证路径)
  • SpringBoot+Vue课程管理系统源码(含数据库脚本、管理员账号及完整部署文档)
  • R3nzSkin:英雄联盟换肤工具的技术实现与安全实践深度解析
  • 2026实力榜单乌兰察布名表名包奢侈品回收法穆兰萧邦朗格普拉达罗意威迪奥头部门店实力盘点 - 谊识预商贸
  • 方法论重构:从工具使用者到工作流架构师的范式转变
  • 科大讯飞办公本选购指南:墨水屏手写与语音转写深度解析
  • 抖音批量下载神器:3分钟解锁创作者的全部作品库
  • DTH-08温湿度传感器与PIC18LF45K22的硬件设计与信号优化
  • Gogs vs GitLab CE:2 款自托管 Git 服务在 2GB 内存 VPS 上的性能与资源对比
  • 工业负载控制:智能高侧开关与PIC18LF45K50解决方案
  • Spatie URL包与PSR-7兼容性:完整实现指南
  • WindowResizer:桌面生产力革命的终极窗口控制方案
  • ComfyUI-Inpaint-Nodes实战进阶:5大核心技巧打造专业级图像修复工作流
  • 2026电子制造设备企业海外客户开发-B2B独立站建设方案 - 外贸营销驿站
  • 星火教育教师生存指南:标准化教学系统的适配逻辑与成长路径
  • 微博热搜自动采集+中文词云可视化工具包(含5天实测效果图)
  • GEO效果追踪系统的设计思路:如何实现品牌AI可见性的量化监测 - 资讯快报
  • 终极免费风扇控制指南:FanControl让你的电脑静音又凉爽
  • 律师工作流自动化:从文书结构化到执业风险前置控制
  • Unity AssetBundle打包后自发光失效:原因分析与完整解决方案
  • MLB-StatsAPI常见问题解答:新手到专家的15个关键问题
  • Python xt-flaskapidocs 包:功能详解、安装配置、语法参数与实战案例
  • 构建工业级C++跨平台架构:从分层设计到部署实战
  • VSCode 1.84 Git 实战:3步完成 .gitignore 配置与 package-lock.json 管理
  • 义体即社保:《赛博朋克2077》中的身体金融化逻辑
  • Windows 10系统优化终极指南:使用Win10BloatRemover快速清理系统臃肿
  • 高性能直流有刷电机驱动方案:TC78H651AFNG与TM4C1299KCZAD应用解析