Как преобразовать данные JSON в пару ключ-значение с помощью Typescript

#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;
   })