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

133
Views
obtener la relación entre la suma del mismo carácter en una cadena y la longitud total de la cadena

esta función debe contar la "a" en una cadena y calcular una relación entre la suma de todas las "a" y la longitud de la cadena. Funciona bien, excepto cuando la cadena está vacía y debe generar "0" en lugar de NaN. Que'

 function ratio(statistic) { let charcount = 0 ; for ( let i = 0 ; i < statistic.length ; i++){ if ( statistic[i] == 'a' ){ charcount += 1 ;} } return Math.round(charcount/statistic.length * 100) ; } console.log(ratio('abababaabaaa')); console.log(ratio('')); // 67 // NaN <---- here should be 0

Es lo que quiero arreglar, gracias.

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

0

Si la estadística como parámetro en la función de proporción es '', statistic.length es 0. Y esto provoca un error matemático porque algo no se puede dividir por 0. Si escribe un código excepcional como el siguiente, funcionará bien.

 function ratio(statistic) { let charcount = 0 ; for ( let i = 0 ; i < statistic.length ; i++){ if ( statistic[i] == 'a' ){ charcount += 1 ; } } return (statistic == ''? 0 : Math.round(charcount/statistic.length * 100)) ; }
about 4 years ago · Juan Pablo Isaza Report

0

cuando tiene una cadena vacía o una cadena nula, el valor de statistic.length será 0. Por lo tanto, le falta esta verificación en su código, por eso obtiene NaN (No es un número).

 function ratio(statistic) { let charcount = 0 ; for ( let i = 0 ; i < statistic.length ; i++){ if ( statistic[i] == 'a' ){ charcount += 1 ;} } // Corrected code here return statistic.length == 0 ? 0 : Math.round(charcount/statistic.length * 100) ; } console.log(ratio('abababaabaaa')); console.log(ratio('')); // 67 // NaN <---- here should be 0

about 4 years ago · Juan Pablo Isaza Report

0

Probar:

 function ratio(statistic) { let charcount = 0 ; for ( let i = 0; i < statistic.length; i++ ) { if ( statistic[i] == 'a' ) { charcount += 1; } } if (charcount === 0) return 0; // check if there were no a's in the string, if so return 0 return Math.round(charcount/statistic.length * 100) ; } console.log(ratio('bbbbbbbaaa')); console.log(ratio(''));

Para evitar tener que dividir por 0, simplemente verificamos si no se encontraron a y, de ser así, devolvemos 0 en ese momento.

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!