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

JavaScript中如何组合使用map与filter方法移除返回结果中的null值

实现方案

你可以通过以下两种方式实现需求:

方案1:先映射后过滤(写法直观易读)

columnValueList(val) {
  return this.beacons
    .map((d) => d[val]?.name)
    .filter(name => name != null);
}
  • 这里用可选链?.避免d[val]不存在时抛出访问异常
  • filter判断条件name != null可以同时过滤null和undefined两类无效值
  • 如果运行环境不支持ES2020可选链语法,可以使用兼容写法:
columnValueList(val) {
  return this.beacons
    .map((d) => d[val] && d[val].name)
    .filter(name => name !== null && name !== undefined);
}

方案2:flatMap单次遍历(大数据量下性能更优)

columnValueList(val) {
  return this.beacons.flatMap((d) => {
    const name = d[val]?.name;
    return name != null ? [name] : [];
  });
}

flatMap会自动将返回的数组合并扁平化,需要过滤的无效值直接返回空数组即可,无需额外遍历步骤。


参考数据结构

beacons数据结构


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 00:36:03