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

295
Views
Máscara de tarjeta de crédito kata en CodeWars - JavaScript

Estas son las instrucciones para el kata en el que estoy trabajando:

Por lo general, cuando compra algo, se le pregunta si su número de tarjeta de crédito, número de teléfono o la respuesta a su pregunta más secreta sigue siendo correcta. Sin embargo, dado que alguien podría mirar por encima de su hombro, no desea que eso se muestre en su pantalla. En cambio, lo enmascaramos.

Su tarea es escribir una función maskify, que cambia todos menos los últimos cuatro caracteres en '#'.

Me cuesta entender por qué este código puede imprimir la respuesta correcta

 let maskify = cc => console.log('#'.repeat(cc.length - 4) + cc.substr(-4));

Pero el siguiente código solo devuelve "RangeError: valor de recuento no válido en String.repeat ()"

 let maskify = cc => { return '#'.repeat(cc.length - 4) + cc.substr(-4); }
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

¿Cómo estás ejecutando tu función? Ejecuté su función en repl.it con una entrada de muestra y funciona bien.

 let maskify = cc => { return '#'.repeat(cc.length - 4) + cc.substr(-4); } console.log(maskify("abcdefghijklmnop")); //logs "############mnop"
about 4 years ago · Juan Pablo Isaza Report

0

Ambos fragmentos de código producen los mismos resultados. Si la longitud del parámetro es inferior a 4, se producirá un error.

 let maskify = cc => console.log('#'.repeat(cc.length - 4) + cc.substr(-4)); maskify('1234123456785678'); // Masks first 12 digits maskify('12341'); // Masks first digit maskify('123'); // Invalid count value error

 let maskify = cc => { return '#'.repeat(cc.length - 4) + cc.substr(-4); }; // Same results as previous code console.log(maskify('1234123456785678')); // Masks first 12 digits console.log(maskify('12341')); // Masks first digit console.log(maskify('123')); // Invalid count error

Cómo funciona

  • Primero, el parámetro cc debe tener una longitud de al menos 4 caracteres (normalmente, puede tener una longitud de 16 caracteres)
  • El '#'.repeat() indica que el carácter # debe repeat -ed.
  • El parámetro enviado a repeat indica cuántas veces. Entonces, cc.length - 4 indica que para cc de 16 caracteres, habrá 12 '#' repetidos
  • El + busca concatenar los '#' repetidos con el operando a su derecha
  • El cc.substr(-4) extrae los últimos 4 caracteres de cc (& este es el operando en el lado derecho de + para la concatenación).

Ambos fragmentos siguen la misma lógica. El primero inicia sesión en la console ; mientras que el segundo devuelve la cadena.

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!