Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

135
Visualizações
How can I access object properties using an array of strings / keys?

Let us consider the following array and object:

const keys = ['a', 'b', 'c'];

const object = {
  a: {
    b: {
      c: {
        data: 1
      }
    }
  }
}

Naturally, I would access the data like so:

object['a']['b']['c']

The question is, how can I access the data using the array as input? Something like:

object[...keys]
about 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Probably no other way to do this

const keys = ['a', 'b', 'c'];

const object = {
  a: {
    b: {
      c: {
        data: 1
      }
    }
  }
}

console.log(getValue(object, ...keys))

function getValue(obj, ...keys) {
  let current = obj
  for (const key of keys) {
    current = current[key]
  }
  return current
}

about 4 years ago · Santiago Trujillo Relatório

0

You can loop through the keys:

function getValueAtObjectPath(obj, path) {
  let val = obj;
  let key = path.shift();
  while(key && val) {
    val = val[key];
    key = path.shift();
  };
  return val;
}

const keys = ['a', 'b', 'c'];

const object = {
  a: {
    b: {
      c: {
        data: 1
      }
    }
  }
}

let val = getValueAtObjectPath(object, keys);
console.log('value at object path: ' + JSON.stringify(val));

Return:

value at object path: {"data":1}
about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda