Bhrungarajni
Bhrungarajni

Reputation: 2535

how to compare array of objects with object key value, if matches retain if not filter out using angular13

i have array of objects and one object, here i need to compare array of objects with the object key , if object key matches with array of object param, we need to retain that and remove the objects whose key doesnt matches with array param.

data:

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"
}

Upvotes: 0

Views: 48

Answers (2)

Robert Rendell
Robert Rendell

Reputation: 2289

const keys = Object.keys(obj);     
array1.filter((item) => keys.includes(item.param));

Something like that?

Upvotes: 3

Naren Murali
Naren Murali

Reputation: 56690

const 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'
  }
]

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

console.log(array1.filter(x => {
  let output = false;
  for (let key in obj) {
    if (!output) {
      output = !!(key === x.param);
    }
  }
  return output;
}));

Upvotes: 2

Related Questions