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

如何修改JavaScript代码移除map结果中的空数组片段?

解决过滤后仍存在空products数组的accounts项问题

你当前的代码只完成了过滤每个account下不符合白名单的products,但没有把那些过滤后products为空的account本身去掉。要达成期望结果,需要在处理完每个account的products后,再对accounts数组做一次过滤,只保留products不为空的account。

修改后的代码如下:

const WHITE_LIST = ['123', '321'];

const mapped = items.map((item) => ({
  ...item, 
  accounts: item.accounts
    .map((acc) => ({
      ...acc, 
      products: acc.products.filter((prod) => WHITE_LIST.includes(prod.code))
    }))
    // 新增过滤逻辑:移除products为空数组的account
    .filter(acc => acc.products.length > 0)
}));

console.log(mapped)

修改说明

  1. 先通过map遍历每个account,筛选出其中符合白名单的products
  2. 紧接着调用filter方法,只保留处理后products数组长度大于0的account项

运行修改后的代码,输出结果将与期望一致:

[
  { products: [ [Object] ] },
  { products: [ [Object] ] }
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 11:42:45