2017-06-24 6 views
0

Also lassen Sie uns sagen, ich habe eine Funktion flatted die ObjectReturned unter einen Observable des Objekts zurückgibt:anhand beobachtbarer Karte Betreiber ein Array

interface ObjectReturned { 
 
    id: string, 
 
    information: info[], 
 
    anotherObj: AnotherObj[] 
 
} 
 

 
interface AnotherObj { 
 
    information: info[] 
 
} 
 

 
interface info { 
 
    name: string 
 
}

Da ObjectReturned.info[] und AnotherObj.info[] beide immer enthalten nur ein Element jeder, wie kann ich den map Operator von Observable verwenden, um das info Feld oben so zu "plätten", dass tha t Ich kann direkt auf das zurückgegebene Ergebnis (Observable<ObjectReturned>) unter Verwendung von objectReturned.name und objectReturned.anotherObj.name zugreifen?

+0

Observable hat damit nichts zu tun. Verwenden Sie einfach die Karte und glätten Sie sie dann selbst. 'const [firstAndOnlyValue] = deinArray''; und dann benutze firstAndOnlyValue wie du willst – Maxime

+0

Vielleicht war ich nicht klar, sorry, ich möchte immer noch eine Observable von 'ObjectReturned' zurückgeben – Sammy

Antwort

0
objectReturned.map(obj => Object.assign(obj, {name: information[0].name}); 

das gibt

{ 
    id: string, 
    name: string, 
    anotherObj: AnotherObj[] 
} 

Sie können weiterhin das gleiche zu anotherObj gelten. lassen Sie mich wissen, wenn dies das ist, was Sie suchen.