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

162
Visualizações
Getting objects from json data tree, issue with reusing function

I wrote a code (with help from another question) in order to get objects from a json tree.

let objFound = null;
 
function getObjFromValue(obj, prop, val) {
    Object.keys(obj).forEach((key) => {
        if (objFound == null) {
            if (key === prop && val === obj[key]) {
                objFound = obj;
            }
 
            if (typeof obj[key] === 'object') {
                getObjFromValue(obj[key], prop, val);
            }
        }
    });
 
    return objFound;
}

The problem with it is, that I can use it only once since the variable objFound is global (I need it to stop the forEach loop somehow) and never gets nulled again, so when I make another search I receive the previous and first object that the function found. Is there a way to improve/fix my function?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

You can use a local variable to return the value, after setting the global variable to null.

let toReturn = objFound;
objFound = null;
return toReturn;

However, this global variable approach might not be the best one. The comment of @pilchard has a good alternative, making the variable local.

about 4 years ago · Juan Pablo Isaza 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