我有这个对象的对象,我正在尝试获取包含社会对象的项
const events = {
'event-1': { id: 'event-1', channel: 'facebook'},
'event-2': { id: 'event-2', channel: 'twitter'},
'event-3': { id: 'event-3', channel: 'slack'},
};
例如,我需要获取具有facebook的事件,并松弛任何想法如何在对象而不是数组的javascript上工作?
谢谢
发布于 2021-07-22 21:58:42
您可以将其转换为条目,对其进行过滤,然后将其转换回对象:
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);
发布于 2021-07-22 22:01:36
试试这个:
const events = {
'event-1': { id: 'event-1', channel: 'facebook' },
'event-2': { id: 'event-2', channel: 'twitter' },
'event-3': { id: 'event-3', channel: 'slack' },
};
var val = Object.values(events).filter(t=>t.channel == 'facebook' || t.channel == 'slack');
console.log(val);
发布于 2021-07-22 22:14:58
维护一个单独的变量,保存所有社交平台,并基于此过滤事件数组……
const socialPlatforms = [
'facebook',
'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 socialEvents = Object.values(events)
.filter(event => socialPlatforms.includes(event.channel))
.map(event => event.id);
console.log(socialEvents);
/*
[ 'event-1', 'event-3' ]
*/https://stackoverflow.com/questions/68486093
复制相似问题