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

如何按orderId过滤数据并在现有条件中新增companyID存在性校验

问题与解决方案

现有API响应结构

{
  success: true,
  data: { items: [ [Object] ] },
  pagination: { totalCount: 1, pageCount: 1, currentPage: 1, perPage: 40 },
  status: 200
}

现有条件判断代码

if ((!validate || (validate(item) && (!!item.distributor_br_id && $distributorArr.length > 0 && $distributorArr.includes(item.distributor_br_id))))) {
  await this.createOrUpdate(modelDoc, item, uniqueFieldName);
}

1. 新增companyID存在校验

在原条件逻辑中加入companyID的存在性校验,分两种情况调整:

  • 若companyID是item的直接属性:
if ((!validate || (validate(item) && (!!item.distributor_br_id && $distributorArr.length > 0 && $distributorArr.includes(item.distributor_br_id) && !!item.companyID)))) {
  await this.createOrUpdate(modelDoc, item, uniqueFieldName);
}
  • 若companyID嵌套在item.data下:
// 用可选链操作符避免层级不存在报错
if ((!validate || (validate(item) && (!!item.distributor_br_id && $distributorArr.length > 0 && $distributorArr.includes(item.distributor_br_id) && !!item.data?.companyID)))) {
  await this.createOrUpdate(modelDoc, item, uniqueFieldName);
}

2. 按orderId过滤数据

在处理数据前,先用Array.filter()筛选出符合orderId条件的项,再执行后续逻辑:

  • 单一orderId匹配:
// 替换为实际要过滤的orderId值
const targetOrderId = "your-target-order-id";
const filteredItems = response.data.items.filter(item => item.orderId === targetOrderId);

// 遍历过滤后的数组处理
for (const item of filteredItems) {
  // 这里可直接使用上面新增companyID校验后的if条件
  if ((!validate || (validate(item) && (!!item.distributor_br_id && $distributorArr.length > 0 && $distributorArr.includes(item.distributor_br_id) && !!item.data?.companyID)))) {
    await this.createOrUpdate(modelDoc, item, uniqueFieldName);
  }
}
  • 多个orderId匹配:
const targetOrderIds = ["order-id-1", "order-id-2"];
const filteredItems = response.data.items.filter(item => targetOrderIds.includes(item.orderId));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 03:42:25