Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

227
Visualizações
¿Cómo funciona el mecanismo de argumento de paso en javascript?

¿Puede explicar cómo los argumentos se pasan automáticamente en las funciones de devolución de llamada?

 1. const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; 2. arr.sort(comFunc); 3. /* how arugments 'a' and 'b' are passed inside comFunc in sort() function */ 4. function comFunc(a, b){ 5. return b - a; 6. } 7. arr.forEach((item)=>{ 8. console.log(item); 9. })

En el código anterior, estoy confundido sobre cómo a y b se pasan automáticamente como argumento dentro de sort(). ¿Puedes explicar la segunda línea en el código de cómo comFunc obtiene sus argumentos?

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

La función Array.prototype.sort iterará a través de la matriz, pasando los valores en el índice actual (a) y el siguiente índice (b) a la función de devolución de llamada que proporcionó.

Según su ejemplo anterior, debería hacer las siguientes llamadas por iteración

 0: a = 1; b = 2 1: a = 2; b = 3 2: a = 3; b = 4 ...
about 4 years ago · Juan Pablo Isaza Relatório

0

Su comFunc es una variable con tipo Función . Será llamado más tarde por el método de sort internamente y ellos se encargarán de pasar los parámetros con los valores apropiados.

Aquí hay un ejemplo más simple ya que sort es un poco complicado. En su lugar, veamos la función Array.filter :

El método filter() crea una nueva matriz con todos los elementos que pasan la prueba implementada por la función proporcionada.

Podemos implementar tal función como esta:

 function filter(arr, filterFunction) { const result = []; for (let item of arr) { if (filterFunction(item)) { result.push(item); } } return result; }

Al crear la función, no sabe con qué "desarrollador final" desea filtrar. Por lo tanto, permite que el desarrollador pase una función, y es trabajo del desarrollador asegurarse de que sea una función que acepte un elemento y devuelva un resultado booleano. Nuestro trabajo es pasar el elemento y actuar en consecuencia con el resultado. Por ejemplo:

 const arr = [1,10,5,3,2]; const filteredArr = filter(arr, require5OrMore); function require5OrMore(item) { return item >= 5; } // filterArr now contains only items that are >= 5 (10 and 5)

Tenga en cuenta que, en realidad, el código anterior se puede simplificar utilizando la función anónima y/o de flecha :

 const filteredArr = filter(arr, item => item >= 5);

Ahora, si aún no puede entender por qué está sucediendo, puede colocar algún punto de interrupción en la función de filter anterior y la función require5OrMore y verificar los valores a medida que el código se ejecuta a través de él.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda