基于值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);