const object = { level1: { level2: { level3: 'foo' } } } Digamos que quiero obtener el valor de level3
console.log(object.level1.level2.level3); Eso es tan arriesgado considerando que level1 y level2 podrían ser null o undefined . ¿Hay alguna forma sencilla de obtener level3 valor de nivel 3 de forma segura? Además de verificar las propiedades del objeto una por una como esta
if (object.level1) { if (object.level2) { if (object.level3) { // do stuff } } }Prueba esto, " ?. "
const object = { level1: { level2: { level3: 'foo' } } } console.log('object: ',object?.level1?.level2?.level3)Es exactamente por eso que tiene el encadenamiento opcional (introducido en ES2020) en javascript.
Es un operador (?.) que le permite leer el valor de una propiedad ubicada en lo profundo de una cadena de objetos conectados sin tener que verificar que cada referencia en la cadena sea nula/indefinida, por lo que en realidad lo protege de obtener un error de referencia nula .
console.log(object.level1?.level2?.level3);