Я получаю документ из PouchDB в службе Angular. Документ извлекается в следующем формате:
{
"_id":"segments",
"_rev":"1-4f0ed65cde23fe724db13bea1ae3bb13",
"segments":[
{ "name":"Aerospace" },
{ "name":"Auto repair" },
{ "name":"Commercial" },
{ "name":"Education" },
{ "name":"Energy" },
{ "name":"Farm/ranch" },
{ "name":"Furniture" },
{ "name":"Heavy Equipment" },
{ "name":"Hobbyist" },
{ "name":"Infrastructure" },
{ "name":"Luxury/Leisure" },
{ "name":"Military" },
{ "name":"MUP" },
{ "name":"Processing" },
{ "name":"Rail" },
{ "name":"Transportation" }
]}
И я хочу отобразить это на новый массив, который будет выглядеть так:
[
{ value: "Aerospace", viewValue: "Aerospace" },
{ value: "Auto Repair", viewValue: "Auto Repair" },
{ value: "Commercial", viewValue: "Commercial" }
...
]
Для этого я попробовал этот код в моей службе:
getSegments(): Observable<any[]> {
return from(this.database.get('segments'))
.pipe(
map((results) => results.segments)
);
}
И я преобразовываю массив в моем компоненте так:
segments: SegmentsLookup[] = [];
...
this.lookupDbService.getSegments()
.subscribe(data => {
data.forEach(element => {
this.segments.push({value: element.name, viewValue: element.name});
});
});
Это работает, но я знаю, что есть способ правильно отобразить это обратно в коде Сервиса. Кроме того, когда это делается таким образом, компилятор жалуется на «результаты. сегменты », заявляя, что «свойство» сегменты »не существует для типа« {} ».
Как мне сопоставить полученные данные с массивом, который мне нужен в методе сервиса getSegments?