基于值js过滤对象的对象

我有这个对象对象,我正在尝试获取包含社交内容的项目

const events = {
    'event-1': { id: 'event-1', channel: 'facebook'},
    'event-2': { id: 'event-2', channel: 'twitter'},
    'event-3': { id: 'event-3', channel: 'slack'},
  };

回答

你可以把它变成条目,过滤它们,然后把它变成一个对象:

const events = {
    'event-1': { id: 'event-1', channel: 'facebook'},
    'event-2': { id: 'event-2', channel: 'twitter'},
    'event-3': { id: 'event-3', channel: 'slack'},
  }
  
const result = Object.fromEntries( 
    Object.entries(events).filter( ([key,value]) => value.channel == "facebook" || value.channel == "slack")
);

console.log(result);

您可以通过将它们放在数组中并使用来检查频道列表 includes

const events = {
    'event-1': { id: 'event-1', channel: 'facebook'},
    'event-2': { id: 'event-2', channel: 'twitter'},
    'event-3': { id: 'event-3', channel: 'slack'},
  }
  
const channels = ["facebook","slack"];
const result = Object.fromEntries( 
    Object.entries(events).filter( ([key,value]) => channels.includes(value.channel))
);

console.log(result);


以上是基于值js过滤对象的对象的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>