2017-06-19 5 views
0

Ich mag ein Array von Objekten iterieren aber ich habe das übergeordnete Objekt aus einem REST-API-Service und manchmal die verschachtelten Array von Objekten fehlen wird, zum Beispiel:Validieren Existenz eines verschachtelten Objekt

var data = [ 
    { 
    "post": { 
     "message": "this is a test", 
     "comments": [ 
     { 
      "comment_text": "this is a comment" 
     } 
     ] 
    } 
    } 
] 

wenn ich über die Kommentare wiederholen will, habe aber keine Garantie dafür, dass die post oder comment Objekt vorhanden sein wird, wie ich zur Zeit pre-validate mit:

if (data && data.post && data.post.comments) { 
    //iteration 
} 

gibt es einen sauberen Weg, um die Validierung Teil zu tun?

Antwort

0

Einer der Vorteile von ImmutablsJS (außerhalb seiner Kernfunktion - Unveränderlichkeit) ist die nette API, die es zur Verfügung stellt. Wenn Ihre Daten war ein unveränderliches Map Objekt Sie comments wie diese iterieren könnte:

data.getIn(['post', 'comments'], List()).map(...) 

Hinweis, dass dieser Code ohne if Anweisung arbeiten, wie Sie eine leere ein optionales Standard Ergebnis getIn, in diesem Fall passieren kann List.

Verwandte Themen