#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. Помогает ли это?