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

如何在过滤数组时仅在值非undefined时应用对应条件?

实现带可选条件的数组过滤

你只需要给每个过滤条件加上「变量未定义则跳过检查」的判断逻辑即可,修改后的代码如下:

this.subAgencies = demoSubAgencies.filter(function(subAgency) {
  return (agencyName === undefined || subAgency.subAgencyName === agencyName)
    && (taxId === undefined || subAgency.taxId === taxId)
    && (accountNumber === undefined || subAgency.accountNumber === accountNumber);
});

逻辑说明:

  • 每个条件都采用 [参数未定义] || [属性匹配参数] 的结构:
    • 若参数(如taxId)为undefined,参数 === undefined结果为true,该条件自动成立,不会对当前子机构做过滤限制
    • 若参数有具体值,则会校验子机构的对应属性是否与参数相等,只有相等才会保留该子机构

如果需要同时兼容null和undefined的场景(即参数为null时也跳过过滤),可以把判断改成参数 == null,示例:

(taxId == null || subAgency.taxId === taxId)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 03:14:58