Explica este código JavaScript
Dificultad: Básico
const persons = [
{
surname: 'Zoe',
address: {
street: {
name: 'Sesame Street',
number: '123',
},
},
},
{
surname: 'Mariner',
},
{
surname: 'Carmen',
address: {
},
},
];
const f = (arr) => {
return arr.map((person) => {
return person?.address?.street?.name
})
}
console.log(f(persons)) //?
A. ['Sesame Street', null, null]
B. ['Sesame Street', undefined , undefined]
C. [undefined, undefined, undefined]
D. ['Sesame Street']
Respuesta en el primer comentario.
Top comments (1)
Respuesta:
B.
['Sesame Street', undefined , undefined]Muchas veces encontraremos que los arreglos de objetos no tienen todas la propiedades, es muy común esto y al momento de accederlas podremos obtener errores.
Una buena manera de solucionar esto es usando el encadenamiento opcional
?., de esta manera nos aseguramos que si una propiedad no existe en el objeto, entonces regreseundefinedy no asi un error que destruya la app.La idea aproximada es:
undefinedninull, realice la operación después del signo de interrogación.undefined.Si ejecutamos la función de usando encadenamiento simple:
Obtendremos el siguiente error:
Uncaught TypeError: Cannot read properties of undefined (reading 'street')
Preferible obtener un arreglo de
undefinedque un error que pare la ejecución de la app.