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

Angular 13中如何依据对象键匹配过滤对象数组,保留匹配元素

在Angular 13中根据对象键过滤数组元素

要实现将array1中param属性与obj的键匹配的元素保留、过滤不匹配元素的需求,你可以结合Object.keys()和数组的filter()方法完成,具体实现如下:

实现代码

// 定义原始数组与对象
array1 = [
  {displayName: 'Chase Id', param: 'chaseId', icon: 'fa fa-sort'},
  {displayName: 'Last Modified By', param: 'lastModifiedBy', icon: 'fa fa-sort'},
  {displayName: 'Last Modified Date', param: 'lastModifiedDate', icon: 'fa fa-sort'},
  {displayName: 'Imported Chase Id', param: 'importedChaseId', icon: 'fa fa-sort'},
  {displayName: 'Chase Status Name', param: 'chaseStatusName', icon: 'fa fa-sort'},
  {displayName: 'Pend Reason', param: 'pendReason', icon: 'fa fa-sort'},
  {displayName: 'Active', param: 'active', icon: 'fa fa-sort'},
  {displayName: 'Last Contacted Date', param: 'lastContactedDate', icon: 'fa fa-sort'},
  {displayName: 'Ready To Review Date', param: 'readyToReviewDate', icon: 'fa fa-sort'},
  {displayName: 'Scheduled Date', param: 'scheduledDate', icon: 'fa fa-sort'},
  {displayName: 'Release Pend To Client', param: 'releasePendToClient', icon: 'fa fa-sort'}
];

obj = {
  chaseId: 419,
  chaseStatusName: "Scheduled",
  id: 42,
  importedChaseId: "123478",
  lastModifiedBy: "adminuser",
  lastModifiedDate: "2022-08-12T12:43:17.792023",
  pendReason: null,
  type: "CHASE_STATUS"
};

// 过滤逻辑方法
getFilteredArray() {
  // 提取obj的所有键组成数组
  const objKeys = Object.keys(this.obj);
  // 过滤array1,保留param匹配obj键的元素
  return this.array1.filter(item => objKeys.includes(item.param));
}

代码说明

  1. Object.keys(this.obj):提取obj的所有键,返回一个字符串数组(如['chaseId', 'chaseStatusName', 'id', ...])
  2. array1.filter(...):遍历array1的每个元素,检查元素的param属性是否存在于objKeys数组中,符合条件的元素会被保留。

最终过滤结果

保留的元素为:

  • Chase Id (param: chaseId)
  • Last Modified By (param: lastModifiedBy)
  • Last Modified Date (param: lastModifiedDate)
  • Imported Chase Id (param: importedChaseId)
  • Chase Status Name (param: chaseStatusName)
  • Pend Reason (param: pendReason)

其余元素(如Active、Last Contacted Date等)因param未在obj的键中出现,会被过滤掉。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 06:18:21