Quando precisamos buscar uma lista de elementos em JavaScript sempre usamos .find(), mas o .find() usa o paradigma declarativo ou seja o paradigma declarativo em JavaScript se refere a uma abordagem de programação na qual você descreve o que deseja alcançar e deixa a linguagem cuidar da implementação dos detalhes.
Exemplo:
const numbers = [10, 20, 30, 40, 50];
function findGreaterThan30(element) {
return element > 30;
}
const result = numbers.find(findGreaterThan30);
console.log(result); // 40
No paradigma imperativo em JavaScript, você fornece instruções detalhadas sobre como realizar uma tarefa. Nesse estilo de programação, você se concentra em especificar passo a passo como um programa deve executar as ações desejadas.
Examplo:
const numbers = [10, 20, 30, 40, 50];
let result;
function findGreaterThan30Imperative(array) {
for (let i of Object.keys(array)) {
if (array[i] > 30) {
result = array[i];
break;
}
}
}
findGreaterThan30Imperative(numbers);
console.log(result); // 40
Ambos trazem o mesmo resultado, mas qual sera o mais rapido.
Vamos passar para duas functions uma declarative() e a outra imperative()
Exemplo:
function declarative() {
console.time('declarative');
const numbers = [10, 20, 30, 40, 50];
function findGreaterThan30(element) {
return element > 30;
}
const result = numbers.find(findGreaterThan30);
console.log(result); // 40
console.timeEnd('declarative');
}
declarative();
function imperative() {
console.time('imperative');
const numbers = [10, 20, 30, 40, 50];
let result;
function findGreaterThan30Imperative(array) {
for (let i of Object.keys(array)) {
if (array[i] > 30) {
result = array[i];
break;
}
}
}
findGreaterThan30Imperative(numbers);
console.log(result); // 40
console.timeEnd('imperative');
}
imperative();
Executando e olhe a diferença:
Espero ter ajudado <3 e cuidado ao usar .find() em JavaScript.
Top comments (0)