Tengo el siguiente JSON ;
"level1":[ { "id":"0", "index":"0", "label":"Level 1 Label a", "level2":[ { "id":"0", "index":"0", "label":"Level 2 Label 1a", "level3":[ {"id":"UniqueId1","index":"0","label":"Level 3 Label 00a"} ] }, { "id":"1", "index":"1", "label":"Level 2 Label 1b", "level3":[ {"id":"UniqueId2","index":"0","label":"Level 3 Label 00b"} ] }] }, { "id":"1", "index":"1", "label":"Level 1 Label b", "level2":[ { "id":"0", "index":"0", "label":"Level 2 Label 2a", "level3":[ {"id":"UniqueId3","index":"0","label":"Level 3 Label a"} ] }, { "id":"1", "index":"1", "label":"Level 22 Label", "level3":[ {"id":"UniqueId4","index":"0","label":"Level 3 Label b"} ] }] } ]Mi pregunta es si hay una forma de crear una matriz de todas las cadenas a partir de level3.id Entonces, dada esta entrada, quiero que la salida sea
["UniqueId1", "UniqueId2", "UniqueId3", "UniqueId4"] Estoy pensando en usar el map ... pero no estoy seguro de si hay una mejor manera.
La forma más sencilla es usar flatMap de esta manera:
level1 = [ { "id": "0", "index": "0", "label": "Level 1 Label a", "level2": [ { "id": "0", "index": "0", "label": "Level 2 Label 1a", "level3": [ { "id": "UniqueId1", "index": "0", "label": "Level 3 Label 00a" } ] }, { "id": "1", "index": "1", "label": "Level 2 Label 1b", "level3": [ { "id": "UniqueId2", "index": "0", "label": "Level 3 Label 00b" } ] }] }, { "id": "1", "index": "1", "label": "Level 1 Label b", "level2": [ { "id": "0", "index": "0", "label": "Level 2 Label 2a", "level3": [ { "id": "UniqueId3", "index": "0", "label": "Level 3 Label a" } ] }, { "id": "1", "index": "1", "label": "Level 22 Label", "level3": [ { "id": "UniqueId4", "index": "0", "label": "Level 3 Label b" } ] }] } ] console.log( level1.flatMap(t=>t.level2).flatMap(t=>t.level3).map(x=>x.id))