• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
    • Preguntas
    • Profesores
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Pruebas Online
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

73
Vistas
passing property key for nested object to a function to return that property value

i have a nested object like this

const sections = {
   text : {id : 1 , text: 'something' },
   link : {id : 2 , text: 'something' , 'href' : 'http://example.com' },
   social : {
      telegram : {id : 3 , text : 'my telegram' , 'address' : '@mytelegram'} , 
      twitter  : {id : 4 , text : 'my twitter' , 'address' : '@mytwitter'} , 
   }
}

i want to have a function giving me each section by passing property key to it

function getSection(key ){

   console.log(sections[key]);
}

this works for text and link but if i want social.telegram this wont work is there any way to solve this without some sort of looping throw sections ?

------------- edit ------------------------

also what if i want to set the value for the sections object

something like

function setSectionText(key ,  newText)
{
   sections[key].text = newText ; 
}
over 2 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

You need to separate the key and get the outer and inner objects until the wanted result.

function getSection(key) {
    return key
        .split('.')
        .reduce((o, k) => o?.[k], sections);
}

const
    sections = { text: { id: 1, text: 'something' }, link: { id: 2, text: 'something', href: 'http://example.com' }, social: { telegram: { id: 3, text: 'my telegram', address: '@mytelegram' }, twitter: { id: 4, text: 'my twitter', address: '@mytwitter' } } };

console.log(getSection('social.telegram'));
getSection('social.telegram').id = 42;
console.log(sections);
.as-console-wrapper { max-height: 100% !important; top: 0; }

over 2 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda