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

JavaScript过滤对象数组时如何跳过空值对应的筛选条件

筛选逻辑优化方案

原代码强制要求两个字段同时匹配传入的参数,空参数也会被当作匹配条件参与校验,才会出现空参数返回空数组的问题。只需调整filter内的判断逻辑:参数为空时直接跳过对应字段的匹配校验即可,优化后的代码如下:

let list = [{
      "index": 4,
      "chain": "aaa",
      "officeId": "bbb"
    },
    {
      "index": 5,
      "chain": "ccc",
      "officeId": "ddd"
      
    }];

function search(chain, office) {
 let data = list.filter(function(result) {
      // 核心逻辑:参数非空才校验匹配,参数为空则该条件直接通过
      return (chain ? result.chain === chain : true) && (office ? result.officeId === office : true);
 });
 
 console.log(data);
}

// 以下调用均返回 [{index:4, chain:"aaa", officeId:"bbb"}]
search('aaa','bbb');
search('aaa','');
search('', 'bbb');
// 该调用返回完整原始list数组
search('', '');

可选增强逻辑

如果需要兼容参数为undefined、null、全空格的场景,可调整判断逻辑如下,覆盖更多异常输入场景:

return (!chain?.trim() || result.chain === chain) && (!office?.trim() || result.officeId === office);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 04:27:05