#arrays #json #typescript #keyvaluepair
#массивы #json #typescript #keyvaluepair
Вопрос:
Данные JSON имеют 2 массива (категории и апплеты), как показано ниже. Каждый апплет может принадлежать ко многим категориям в соответствии с данными.
categories = ['Investments', 'Operations', 'Performance'];
applets = [
{
name: 'Performance Snapshot',
categories: ['Performance'],
},
{
name: 'Commitment Widget',
categories: ['Investments'],
},
{
name: 'CMS',
categories: ['Investments', 'Performance'],
},
];
Мне нужно преобразовать эти данные JSON, чтобы использовать их по категориям, как показано ниже. Как это сделать в Typescript??
categories = [
{
'name': 'Performance',
'applets': ['CMS', 'Performance Snapshot']
},
{
'name' : 'Investments',
'applets' : ['Commitment Widget', 'CMS']
},
{
'name' : 'Operations',
'applets' : []
}
]
Ответ №1:
const result = categories.map((category) => {
const temp = {};
const filteredApplets = applets.filter((ele) =>
ele.categories.includes(category)).map(({name}) => name);
temp['name'] = category;
temp['applets'] = filteredApplets;
return temp;
})