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

246
Views
Combinación de 2 funciones de devolución de llamada en una

Aquí está la pregunta...

"Agregue código a la función bienCallback en el lugar marcado "AÑADIR CÓDIGO AQUÍ" para lograr los registros de consola deseados. El resultado de usar cualquieraCallback para combinar dos devoluciones de llamada en una devolución de llamada y luego pasar esa devolución de llamada a filterArray debe coincidir con los resultados de simplemente pasando las dos devoluciones de llamada a anyFilter en el desafío anterior ".

Aquí está la solución del desafío anterior que sé que funciona...

 function eitherFilter(array, callback1, callback2) { // ADD CODE HERE const newArr = []; for (let i = 0; i < array.length; i++) { if (callback1(array[i]) || callback2(array[i])) { newArr.push(array[i]); } } return newArr; } // Uncomment these to check your work! const arrOfNums = [10, 35, 105, 9]; const integerSquareRoot = n => Math.sqrt(n) % 1 === 0; const over100 = n => n > 100; console.log(eitherFilter(arrofNums, integerSquareRoot, over100)); // should log: [105, 9]

Aquí está el código dado ...

 function eitherCallback(callback1, callback2) { // ADD CODE HERE } // Uncomment these to check your work! function filterArray(array, callback) { const newArray = []; for (let i = 0; i < array.length; i += 1) { if (callback(array[i], i, array)) newArray.push(array[i]); } return newArray; } const arrOfNums = [10, 35, 105, 9]; const integerSquareRoot = n => Math.sqrt(n) % 1 === 0; const over100 = n => n > 100; const intSqRtOrOver100 = eitherCallback(integerSquareRoot, over100); console.log(filterArray(arrOfNums, intSqRtOver100)); // should log: [105, 9]

Estoy confundido en cuanto a qué hacer. ¿Puede alguien darme unos consejos? ¡No sé ni cómo empezar a responderla!

Gracias por adelantado...

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

0

No necesita mucho, todo lo que necesita es hacer que eitherCallback sea una función de orden superior que tome las dos devoluciones de llamada como argumento inicial, y ejecute y devuelva la lógica que está llevando a cabo aquí:

 callback1(array[i]) || callback2(array[i])

Me gusta:

 const eitherCallback = (callback1, callback2) => x => callback1(x) || callback2(x); // Uncomment these to check your work! function filterArray(array, callback) { const newArray = []; for (let i = 0; i < array.length; i += 1) { if (callback(array[i], i, array)) newArray.push(array[i]); } return newArray; } const arrOfNums = [10, 35, 105, 9]; const integerSquareRoot = n => Math.sqrt(n) % 1 === 0; const over100 = n => n > 100; const intSqRtOrOver100 = eitherCallback(integerSquareRoot, over100); console.log(filterArray(arrOfNums, intSqRtOrOver100)); // should log: [105, 9]

about 4 years ago · Juan Pablo Isaza Report

0

También puedes probar:

 function eitherCallback(callback1, callback2) { // ADD CODE HERE return (element, i, array) => { //element representing array[i] return callback1(element, i, array) || callback2(element, i, array); } }

La idea es que cualquiera de las devoluciones de llamada devuelva un valor real para cualquiera de las devoluciones de llamadas llamadas dentro de la función. Además, creo que la "x" en la solución anterior de cierto rendimiento representa los argumentos array[i], i y array. Es solo una forma más limpia de escribirlo con x en lugar de tener que repetirlo todo. Mantener las cosas SECA.

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!