как выполнить итерацию по результату, полученному в результате вызова api в angular

#angular

Вопрос:

Я получаю результат, структура которого похожа на прикрепленное изображение

структура результата

Он всегда имеет длину 1. Я должен создать карту имени и colorCode типа

 settingColorCode = new Map<string, string>();
 

Пожалуйста, дайте мне знать, как создать карту.
Заранее спасибо
Я написал следующий код, но он не работает

       settingColorCode = new Map<string, string>();
      settingList:SettingWithColorCode[];
      allSetting:AllSettings[];

 

       class SettingWithColorCode {
      public name: string;
      public colorCode: string
    }
    class AllSettings {
      public settings:SettingWithColorCode[];
      constructor(){
        this.settings = new Array<SettingWithColorCode>();
    }

      async getSettingColorMapping(): Promise<void> {
        this._wishlistSandbox.getPlanSetting().subscribe(result => {
          if(result)
          {
            this.allSetting = lodash.cloneDeep(result);
            this.allSetting.forEach(element => {
              element.settings.forEach(sl => {
                this.settingColorCode.set(sl.name , sl.colorCode);
              })
            });
          }
    
        });
      }
 

Ответ №1:

Я думаю, что у вас есть массив, который index 0 содержит список объектов в виде массива. Сначала вы можете выровнять массив с помощью flatMap, а затем проанализировать этот массив в конструкторе карт.

 const arr = [[{name: 'test 1', age: 30}, {name: 'test 2', age: 30}, {name: 'test 3', age: 30}, {name: 'test 4', age: 30}]];

const result = arr.flatMap(el => el);

const map = new Map(result.map(key => [key.name, [key.name, key.age] ]));

map.forEach(el => console.log(el)); 

Вы можете выполнить описанные выше действия и преобразовать свой массив в карту.

Комментарии:

1. Помогает ли это?