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

165
Visualizações
cuente el número total de claves de objetos anidados y matrices

Tengo un objeto anidado con diferentes tipos de propiedades que incluyen cadena, objeto y matriz. Utilicé el enfoque recursivo para contar el número total de claves (de key1 a key9) en el objeto, pero no pude lograr la solución correcta. Ejemplo de mi código a continuación.

 const data = { key1: '1', key2: '2', key3: { key4: '4' }, key5: [ { key6: '6', key7: '7', }, { key8: '8', key9: '9', } ] } const countKeys = (data) => { let count = 0; const helper = (data) => { for (let value of Object.values(data)) { if (typeof value === 'object') { helper(value); } // this line is problematic as it counts each object in the array as key. if (!Array.isArray(value)) count++; } } helper(data) return count; } console.log(countKeys(data)) // 10, correct answer is 9

Intento entenderlo durante muchas horas, pero no pude obtener la solución. ¿Alguien puede explicarme lo que me estoy perdiendo aquí y se supone que debo agregar para que funcione?

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

0

Para los datos proporcionados, existen nueve (9) claves. Podría usar un countKeys(t) recursivo y hacer un análisis de tipo en el tipo de t :

  1. Cuando es un objeto, para todo v en Object.values(t) , reduzca y cuente uno más el resultado recursivo, countKeys(v)
  2. Cuando es una matriz, para todo v en t , suma countKeys(v)
  3. De lo contrario t no es ni un objeto ni una matriz, devuelve cero

 function countKeys(t) { switch (t?.constructor) { case Object: // 1 return Object .values(t) .reduce((r, v) => r + 1 + countKeys(v), 0) case Array: // 2 return t .reduce((r, v) => r + countKeys(v), 0) default: // 3 return 0 } } const data = {key1:"1",key2:"2",key3:{key4:"4"},key5:[{key6:"6",key7:"7"},{key8:"8",key9:"9"}]} console.log(countKeys(data))

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