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

如何过滤含数组字段的对象数组?upType字段过滤实现

实现upType数组的过滤逻辑

要在原有过滤逻辑基础上添加upType数组的过滤,只需在filter回调中补充对应的判断条件即可。以下是修改后的完整代码:

const arrayList = [{
  fNo: 343,
  origin: "Singapore",
  destination: "India",
  upType: ["Eco to PEco", "Eco to HClass"]
}, {
  fNo: 363,
  origin: "Chennai",
  destination: "Singapore",
  upType: ["PEco to HClass"]
}]

// 示例过滤值,根据实际场景替换
const fNo = 343;
const filterUpType = ["Eco to PEco"];

const filteredRulesData = arrayList.filter((data) => {
  // 原有fNo过滤逻辑
  const matchesFNo = data.fNo.toString().includes(fNo.toString());
  // 匹配upType:检查当前项的upType是否包含filterUpType中的任意一个值
  const matchesUpType = filterUpType.some(targetType => data.upType.includes(targetType));
  
  // 同时满足fNo和upType过滤条件(如需添加origin/destination过滤,直接追加判断即可)
  return matchesFNo && matchesUpType;
});

逻辑说明

  • 使用Array.some()遍历filterUpType,只要当前项的upType包含其中任意一个目标类型,就判定为匹配。
  • 如果需要同时满足filterUpType中的所有类型(而非任一),可以把some()替换为every():
    const matchesUpType = filterUpType.every(targetType => data.upType.includes(targetType));
    
  • 原有origin、destination的过滤逻辑可以直接追加到返回条件中,比如:
    return matchesFNo && matchesUpType && data.origin.includes(filterOrigin) && data.destination.includes(filterDestination);
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 08:00:28