You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用一行代码解决嵌套map生成的多层数组冗余问题?

解决方案

你的问题出在默认的.flat()仅会拉平一层嵌套数组,而你的代码生成的是三层嵌套结构,所以需要指定拉平深度或者改用更适配的flatMap方法。以下是两种一行代码的解决方式:

方式1:指定flat的拉平深度

let tags = product.map(item => item.outSourceItem.map(outsourceitem => outsourceitem.tags)).flat(2);

因为你的数组是三层嵌套,传入深度参数2就能直接拉平为单层数组。如果不确定嵌套深度,也可以用flat(Infinity)来处理任意层级的嵌套。

方式2:使用嵌套flatMap(更高效)

flatMap等价于map后立即执行flat(1),嵌套使用可以在映射的同时完成拉平,避免先创建完整的三层嵌套数组:

let tags = product.flatMap(item => item.outSourceItem.flatMap(outsourceitem => outsourceitem.tags));

内容的提问来源于stack exchange,提问作者Stacks Queue

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 05:03:22