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

132
Views
Objeto que contiene una matriz de matrices, cómo eliminar un objeto para que sea solo una matriz de matrices

Tengo un objeto que contiene una matriz de matrices. Me gustaría eliminar el objeto para que sea solo una matriz de matrices. ¿Hay alguna manera en JavaScript para hacer esto o no tengo suerte? Estoy usando Puppeteer para raspar una página y devolver todo el texto después de mapear un conjunto de elementos. Ya escribí una función para separarla en las matrices que quiero, pero Puppeteer la devuelve como un objeto que no quiero. El objeto que devuelve se ve así

ACTUALIZAR

Resulta que está devolviendo una promesa que es un objeto. Entonces, el resultado que obtengo cuando inicio sesión en la consola es

 Promise { [ [], [], []... ] }

Así que supongo que mi nueva pregunta es cómo obtengo solo el resultado de la promesa.

 data = { [ [], [], []... ] };

me gustaria que se pareciera

 data = [ [], [], []... ]

función de titiritero

 const getText = async (data) => { const browser = await puppeteer.launch({ headless: true }) const page = await browser.newPage() await page.goto(data.URL, { waitUntil: 'networkidle2' }); const options = await page.$$eval('table[class="data-table"] > tbody > tr > td', (options) => options.map((option) => option.textContent) ); await browser.close(); const finalData = createGroups(options, 228); // the puppeteer function returns each texContent as a single array, meaning the page // I'm scraping returns 1140 arrays, I want each array in my final product to contain 5 // elements so I did 1140/5, that's how I got 228 console.log(finalData); }

función crear grupos

 const createGroups = async (arr, numGroups) => { const perGroup = Math.ceil(arr.length / numGroups); const finalArr = new Array(numGroups) .fill('') .map((_, i) => arr.slice(i * perGroup, (i + 1) * perGroup)); return finalArr; }

¿O hay una manera de simplemente extraer esa matriz grande que contiene las matrices más pequeñas y ponerla en su propia variable? La forma de hacerlo con arreglos sería LargeArray[0] pero no sé cómo hacerlo con objetos.

Gracias

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

0

La razón por la que obtiene una Promise devuelta es que su createGroups es async (sin necesidad de serlo), y el tipo de retorno de una función async es siempre una Promise .

La mejor manera es simplemente cambiarlo para que no sea async .

 const createGroups = (arr, numGroups) => { // rest of code

Si por alguna razón no desea hacer esto, puede await en su método principal.

 const finalData = await createGroups(options, 228);

En casi todas las circunstancias que se me ocurren, las únicas veces que debe usar async son:

  • Estás usando await en algún lugar del método
  • Está pasando la función como una devolución de llamada a otra función, que espera que la devolución de llamada devuelva una Promise y no desea crear la Promise manualmente.
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!