Así que tengo este originalArray :
[ [ { “name”: “Selena”, “lastName”: “Gomez”, “likes”: { “color”: “red”, “country”: “Argentina”, “state”: { “name”: “Buenos Aires” } }, “phoneNumber”: “5555555555”, “isAvailable”: false } ], [ { “name”: “Nick”, “lastName”: “Jonnas”, “likes”: { “color”: “blue”, “country”: “Argentina”, “state”: { “name”: “Buenos Aires” } }, “phoneNumber”: “7777777777”, “isAvailable”: true }, { “name”: “Joe”, “lastName”: “Jonnas”, “likes”: { “color”: “yellow”, “country”: “Argentina”, “state”: { “name”: “Buenos Aires” } }, “phoneNumber”: “9999999999”, “isAvailable”: false } ] ] Como puede ver, es un objeto que tiene la forma de (2) [Array(1), Array(2)] y quiero iterar sobre el objeto y obtener solo los elementos phoneNumbers .
Rendimiento esperado:
['55555555555', '7777777777', '9999999999']He intentado:
const newArray= originalArray.map(element => element.phoneNumber); Pero devuelve undefined , en realidad intenté acceder con . como originalArray.phoneNumber y también muestra undefined .
También probé con este enfoque sin resultado:
var newArray = originalArray.filter(obj => { return obj.phoneNumber != null }) ¿Hay alguna manera de iterar sobre el objeto, buscar la clave phoneNumber y agregar esos resultados a una nueva matriz?
const phoneNumbers = originalArray.flat().map(element => element.phoneNumber);
Estabas cerca, solo necesitabas agregar un mapa. Prueba esto
var newArray = originalArray.flat() .filter(obj => obj.phoneNumber!=null) .map(obj => { return obj.phoneNumber;}); const originalArray = [ [ { name: "Selena", lastName: "Gomez", likes: { color: "red", country: "Argentina", state: { name: "Buenos Aires", }, }, phoneNumber: "5555555555", isAvailable: false, }, ], [ { name: "Nick", lastName: "Jonnas", likes: { color: "blue", country: "Argentina", state: { name: "Buenos Aires", }, }, phoneNumber: "7777777777", isAvailable: true, }, { name: "Joe", lastName: "Jonnas", likes: { color: "yellow", country: "Argentina", state: { name: "Buenos Aires", }, }, phoneNumber: "9999999999", isAvailable: false, }, ], ]; const phoneNums = originalArray.flat().map((element) => element.phoneNumber); console.log(phoneNums);