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

如何根据可用性生成数组,过滤undefined仅保留有效年份

过滤年份数组中的Undefined元素解决方案

方法1:直接过滤现有数组

你可以使用filter()方法结合Boolean函数,一键移除数组中所有 falsy 值(包括undefined):

const preAuthAvailabilityYears = [
  currentYearAvailability ? currentYear : undefined,
  previousYearAvailability ? previousYear : undefined,
  previousLastYearAvailability ? previousLastYear : undefined,
].filter(Boolean);

Boolean在这里作为回调函数,会对undefined返回false,从而将这类元素从结果数组中排除。

方法2:构建数组时避免加入Undefined

另一种更直接的方式是,仅当对应年份的可用状态为真时,才将年份推入数组,从根源上避免产生undefined:

const preAuthAvailabilityYears = [];
if (currentYearAvailability) preAuthAvailabilityYears.push(currentYear);
if (previousYearAvailability) preAuthAvailabilityYears.push(previousYear);
if (previousLastYearAvailability) preAuthAvailabilityYears.push(previousLastYear);

这种方式逻辑清晰,不需要后续的数组清理操作。

原理说明

  • filter(Boolean)利用了JavaScript的类型转换特性:undefined属于假值,会被自动过滤。
  • 基于push的方法只添加有效年份,数组自始至终不会包含无效元素。

两种方法都能得到仅包含可用年份的数组。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 14:06:24