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

219
Views
contando caracteres en cadena usando objeto

Estoy tratando de contar los caracteres en una cadena usando un objeto. Esta es la función que escribí:

 function maxChar(str) { let obj = {} for(let char of str){ if(obj[char]){ obj[char] += 1 } obj[char] = 1 } console.log(obj) }

Cuando ejecuto la función con la cadena "¡Hola!" vuelve:

 { : 1, !: 1, e: 1, H: 1, h: 1, l: 1, o: 1, r: 1, T: 1 }

Lo cual, por supuesto, no está contando correctamente. Si cambio la declaración if de esta manera:

 function maxChar(str) { let obj = {} for(let char of str){ if(!obj[char]){ obj[char] = 1 } obj[char] += 1 } console.log(obj) }

Vuelve

 { : 2, !: 2, e: 4, H: 2, h: 2, l: 3, o: 2, r: 2, T: 2 }

¿No se supone que ambas funciones hacen lo mismo? ¿Por qué está pasando esto?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Su primera versión se ve así. He añadido algunos comentarios:

 for(let char of str){ if(obj[char]){ obj[char] += 1 // this happens only when the `if` condition is met } obj[char] = 1 // this happens all the time, regardless of the `if` condition }

Esa versión siempre restablecerá el conteo de caracteres a 1. Incluso si hubiera incrementado brevemente el conteo a 2, aún lo restablecerá a 1 inmediatamente después de haberlo hecho.

Una solución (que más se acerque a su código original) podría ser:

 for(let char of str){ if(obj[char]){ obj[char] += 1 } else { obj[char] = 1 } }
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!