Cómo escribir y descargar un archivo usando Blob en Javascript

0

Entonces, tengo un desafío de codificación que debe resolverse en Javascript y no encontré respuestas hasta ahora. Aquí está el trato:

Write numbers from 1 to 99 incl., each number divisible by 5, to a file. (additionally into this file and do NOT output the number divisible by 5 in the normal output, the values in the file are newline separated)

Debería poder descargar este archivo.

Sé que el ejercicio está escrito de una manera extraña, pero yo no lo escribí. Así que así es como lo interpreté:

function download() {
    let outputNum = [];
    for (let  i = 1; i <= 99; i++) {
        outputNum.push(i);
    }

    //If condition to generate numbers dividible by
    if (outputNum % 5 == 0) {
        document.write(outputNum);
    }

    function result(N) {
        // iterate from 0 to N
        for (let num = 0; num < N; num++) {
            // Short-circuit operator is used
            if (num % 5 == 0) 
                document.write(num + " ");
        }
    }

    let N = 100;
    result(N);
    let blabla = result();

    //create a blob              
    const blob = new Blob([outputNum], {type: "text/plain"});
    downloadFile(blob, "Ilovepotato.txt");
} 

//Function to generate a download with blob and file name. 
function downloadFile(blob, filename){
    /*Create a URL for the Blob. 
    URL.createObjectURL() erzeugt einen DOMString, 
    welcher eine URL enthält, die das übergebene Objekt repräsentiert.*/ 
    const url = window.URL.createObjectURL(blob);
    //Anchor Tag to download
    const a = document.createElement("a");


    //Before click we need to add some prop to "a" tag.
    a.href= url;
    a.download = filename;

    // Click Event
    a.click();
}
            
2
  • 1
    Para que podamos ayudarlo adecuadamente, especialmente porque es un ejercicio, necesitamos saber qué intentó hacer exactamente con este código y qué está fallando. Porque no está claro cuál es su problema y qué respuesta está buscando. 13 de oct a las 16:21
  • ¡Ok, editaré la publicación! Gracias :)
    ninna
    13 oct a las 19:30