DEV Community

Gabriel_Silvestre
Gabriel_Silvestre

Posted on

 

Introdução as HOFs - .forEach() e .sort()

Tabela de Conteúdo

.forEach()

O que faz?

Itera sobre todos os elementos do array, possibilitando a manipulação desses valores, porém não retorna valor algum. Ou seja, podemos adicionar propriedades a objetos, adicionar eventListeners a elementos HTML e até mesmo trocar um valor por outro.

  • [✔] Modifica o Array original

Sintaxe

Essa HOF, assim como todas as outras, espera uma callback como parâmetro, sendo que essa callback, por sua vez, poderá receber até três parâmetros: o elemento; o índice; e o Array que foi iterado.

someArray.forEach(/* someCallback */);
someArray.forEach((element, index, arr) => {});

someArray.forEach((e, i) => {
  console.log(e); // imprime no console, um a um, todos os elementos do Array
});
Enter fullscreen mode Exit fullscreen mode
const toys = ["trem", "car", "monster"];

toys.forEach((toy) => {
  toy.toUpperCase(); // coloca todos os brinquedos em caixa alta.
});

console.log(toys); // ["TREM", "CAR", "MONSTER"];
Enter fullscreen mode Exit fullscreen mode

Tradução - JavaScript -> Português

Podemos traduzir essa HOF com a seguinte expressão:

  • “Para cada elemento, faça X coisa.”

Voltar ao topo


.sort()

O que faz?

Ordena o array de acordo com o critério estabelecido, por padrão essa função já possui um critério próprio, que é utilizado quando não passamos uma callback através dos parâmetros.

  • [✔] Modifica o Array original

Sintaxe

Essa HOF espera uma callback que recebe apenas dois parâmetros, sendo eles os valores a serem comparados na hora de ordenar o array. Diferente de outras HOFs, aqui não temos acesso ao índice ou ao array que estamos iterando.

O callback deve retornar um número positivo, negativo ou neutro (zero), a partir desse número o .sort irá alocar o elemento para frente ou para trás.

someArray.sort();
someArray.sort(/* someCallback */);
someArray.sort((a, b) => {});

someArray.sort((a, b) => {
  return a - b;
});
Enter fullscreen mode Exit fullscreen mode
const numbers = [10, 2, 32, 13, 21];

numbers.sort(); // *O algorítimo de ordenação "padrão" do .sort() não é muito confiável
console.log(numbers); // [10, 13, 2, 21, 32]

numbers.sort((a, b) => a - b); // Ordena de forma crescente
console.log(numbers); // [2, 10, 13, 21, 32]

numbers.sort((a, b) => b - a); // Ordena de forma decrescente
console.log(numbers); // [32, 21, 13, 10, 2]
Enter fullscreen mode Exit fullscreen mode

Tradução - JavaScript -> Português

Podemos traduzir essa HOF com a seguinte expressão:

  • “Ordene esse array de acordo com X condição.”.

Voltar ao topo


Links Úteis

.forEach()

.sort()

Voltar ao topo

Top comments (0)

An Animated Guide to Node.js Event Loop

Node.js doesn’t stop from running other operations because of Libuv, a C++ library responsible for the event loop and asynchronously handling tasks such as network requests, DNS resolution, file system operations, data encryption, etc.

What happens under the hood when Node.js works on tasks such as database queries? We will explore it by following this piece of code step by step.