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

如何匹配两个对象数组指定键值并返回符合条件的目标数组?

实现两个数组的匹配筛选

需求:基于arrayOne中的debtor_account值,筛选arrayTwo中account_number匹配的项,最终得到仅包含匹配对象的新数组,用于获取label和currency_name字段。

实现步骤

  1. 提取唯一账户号集合:从arrayOne中提取所有不重复的debtor_account值,存入Set结构(相比数组,Set的查找效率为O(1),适合大数据量场景)
  2. 筛选匹配账户:遍历arrayTwo,保留account_number存在于上述集合中的项

代码实现

// 提取arrayOne中所有唯一的debtor_account
const debtorAccounts = new Set(arrayOne.map(item => item.debtor_account));

// 筛选arrayTwo中匹配的项
const matchedAccounts = arrayTwo.filter(account => debtorAccounts.has(account.account_number));

输出结果

根据提供的示例数据,matchedAccounts最终会包含以下两个对象:

[
  {
    "account_number": "45701229351",
    "currency_code": "EUR",
    "currency_name": "Euro",
    "balance": "9998549.0",
    "has_transactions": true
  },
  {
    "account_number": "44635890652",
    "currency_code": "EUR",
    "currency_name": "Euro",
    "balance": "0.0",
    "has_transactions": false,
    "label": "Marco euro test label"
  }
]

补充说明

  • 如果数组数据量较小,也可以直接用array.some()实现筛选,但性能略差:
    const matchedAccounts = arrayTwo.filter(account => 
      arrayOne.some(item => item.debtor_account === account.account_number)
    );
    
  • 确保debtor_account和account_number的类型一致(示例中均为字符串),避免类型不匹配导致的筛选失败

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 15:50:22