Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

141
Vistas
Agregar datos a una matriz y acceder a los datos dentro de la matriz fuera de la función Javascript

Soy nuevo en Javascript y no entiendo cómo conservar los datos en una matriz. En mi función, estoy leyendo un archivo línea por línea y guardándolo en una matriz. Pensé que debido a que la matriz se declara fuera de la función, los datos permanecerían en ella, pero eso no es lo que sucede. Me gustaría entender cómo hacer al imprimir los valores de la matriz fuera de la función que aún quedan datos.

Mi código:

 const fs = require('fs'); const readline = require('readline'); var array = []; async function processLineByLine() { const fileStream = fs.createReadStream('data.txt'); const rl = readline.createInterface({ input: fileStream, crlfDelay: Infinity, }); for await (const line of rl) { array.push(line); } //console.log(array.toString()); } processLineByLine(); console.log(array.toString());

El resultado esperado sería tener los datos dentro de la matriz:

 288355555123888,335333555584333,223343555124001,002111555874555,111188555654777,111333555123333
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Debido a que processLineByLine es una función asíncrona, console.log se ejecuta antes de que la función asíncrona haya llenado la matriz.

Debe iniciar sesión después de que se haya completado la función asíncrona, como se muestra a continuación:

 processLineByLine().then(() => console.log(array.toString()));

Además, no necesita declarar la array fuera de la función, puede moverla dentro de la función y devolverla desde allí y eso pasaría como argumento a la devolución de llamada .then , como se muestra a continuación:

 const fs = require("fs"); const readline = require("readline"); async function processLineByLine() { const array = []; const fileStream = fs.createReadStream("data.txt"); const rl = readline.createInterface({ input: fileStream, crlfDelay: Infinity, }); for await (const line of rl) { array.push(line); } return array; } processLineByLine().then((array) => console.log(array.toString()));
about 4 years ago · Juan Pablo Isaza Denunciar

0

No lo obtendrá ya que es una llamada asíncrona. intente debajo del fragmento

 const fs = require('fs'); const readline = require('readline'); var array = []; async function processLineByLine() { const fileStream = fs.createReadStream('data.txt'); const rl = readline.createInterface({ input: fileStream, crlfDelay: Infinity, }); for await (const line of rl) { array.push(line); } } processLineByLine().then(()=>{ console.log(array); });

si cada línea de data.txt es como 2883555555123888, 335333555584333, 223343555124001,... y desea extraer esos números, escupa cada línea y luego agréguela a la matriz.

 for await (const line of rl) { array=[...array, ...line.split(',')]; }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda