Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

156
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!