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

195
Visualizações
Problema con la implementación de polyfill window.atob en Javascript

Estoy tratando de escribir mi propia solución para un problema de BFE https://bigfrontend.dev/problem/implement-atob

Básicamente, escribir un polyfill para la función atob disponible en javascript

Traté de comprender el proceso de codificación/descodificación base64 y se me ocurrió la siguiente implementación que funciona bien para la mayoría de las entradas, pero algunos de los casos de prueba están fallando

 function myAtob(encoded) { // All base64 charset const base64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; let temp = ""; // used for storing all characters to binary form let decoded = ""; for (let i of encoded) { // converts each encoded character to binary and pads if required temp += base64.indexOf(i).toString(2).padStart(6, 0); } for (let i = 0; i < temp.length; i += 8) { const num = temp.slice(i, i + 8); // make groups of 8 bits const ascii = parseInt(num, 2); // convert 8 bits to number if (ascii > 30 && ascii < 123){ // I used above 'if' for ignoring the unsupported characters decoded += String.fromCharCode(ascii); // append string equivalent } } return decoded; }

Traté de depurar y creo que está sucediendo porque algunos códigos no admitidos o caracteres escapados están obteniendo parte de mi salida y estropean los casos de prueba.

Ejemplo al usar la función window.atob,

 atob("A===") throws error atob("AA==") returns '\x00'

Estos son diferentes de lo que devuelve mi función. Tal vez el carácter de relleno = esté estropeando algo.

Los siguientes son resultados de casos de prueba:

Casos de prueba fallidos y aprobados

¿Puede alguien ayudarme a arreglar la lógica y el manejo de casos extremos?

about 4 years ago · Juan Pablo Isaza
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