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

346
Views
¿Cómo funciona el método de prueba en este ejemplo del libro EloquentJavascript?

En la 4ª línea utiliza el 2º parámetro de la función llamada map. Pero no hay nada sobre lo que realmente hace la transformación (elemento). Tal vez me estoy perdiendo algo o hace referencia a otra función. Este ejemplo está en el quinto capítulo de la tercera edición del libro EloquentJavaScript.

 function map(array, transform) { let mapped = []; for (let element of array) { mapped.push(transform(element)); } return mapped; } let rtlScripts = SCRIPTS.filter(s => s.direction == "rtl"); console.log(map(rtlScripts, s => s.name)); // → ["Adlam", "Arabic", "Imperial Aramaic", …]
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

transform es una función que se pasa a la función map como argumento. Para cada objeto filtrado de la matriz, se llama a la transform , y se devuelve el valor del nombre de ese objeto, y eso se inserta en una matriz (que se devuelve desde el map una vez que se completa la iteración).

La sintaxis de la función de flecha puede ser un poco confusa, así que aquí está el mismo código usando una declaración de función. Nota: en este punto no lo está llamando, lo está pasando como una referencia para que pueda llamarse más tarde (en el map ).

 // Pass in the array of filtered objects, and the callback function // which returns the name value of the obj in the current loop iteration const out = map(rtlScripts, function (obj) { return obj.name; });

En este ejemplo, reemplacé "elemento" con "obj" para que sea más fácil comprender qué estructuras de datos se están manipulando.

 function map(array, transform) { let mapped = []; // For each object in the array call the // transform function which returns only the name value // and add that to the array for (let obj of array) { mapped.push(transform(obj)); } return mapped; } const SCRIPTS = [{name: 'English',direction:'ltr'},{name:'Adlam',direction:'rtl'},{name: 'French',direction:'ltr'},{name:'Arabic',direction:'rtl'},{name:'Imperial Aramaic',direction:'rtl'}]; // `filter` out all the objects that are "rtl" const rtlScripts = SCRIPTS.filter(obj => obj.direction == "rtl"); // Pass in the filtered array of objects, and for // each of them call the function which returns only the name const out = map(rtlScripts, function (obj) { return obj.name; }); console.log(out); // → ["Adlam", "Arabic", "Imperial Aramaic", …]

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!