Filter ou For loop?
19/06/2020
0
Fala galera!
Estou com uma dúvida aqui eu tenho os seguintes códigos, onde quero descobrir, dentro de um array de pessoas, se alguma delas tem a idade de 19 anos. Se ela tiver, eu mudo o valor da variável "menorDeVinte" para true.
Eu fiz de duas formas, usando for loop e outra com filter.
A minha questão é que no for loop, assim que achar o resultado dentro do array, eu posso usar o break e interromper o loop.
Como o filter funciona? Assim que ele acha o resultado ele interrompe o loop dentro dele? Ou ele vai iterar sobre todos os elementos, mesmo já tendo encontrado uma resposta?
Estou com uma dúvida aqui eu tenho os seguintes códigos, onde quero descobrir, dentro de um array de pessoas, se alguma delas tem a idade de 19 anos. Se ela tiver, eu mudo o valor da variável "menorDeVinte" para true.
Eu fiz de duas formas, usando for loop e outra com filter.
A minha questão é que no for loop, assim que achar o resultado dentro do array, eu posso usar o break e interromper o loop.
Como o filter funciona? Assim que ele acha o resultado ele interrompe o loop dentro dele? Ou ele vai iterar sobre todos os elementos, mesmo já tendo encontrado uma resposta?
let pessoas = [{Nome: Carlos, Idade: 20}, {Nome: Claudia, Idade: 30}, {Nome: Bruna, Idade: 19}]; let menorDeVinte = false; for(let l = pessoas.length; l--;){ if(pessoas[l].Idade === 19){ menorDeVinte = true; break; } } // Método filter let filtered = pessoas.filter(item => item.Idade === 19); if(filtered){ menorDeVinte = true; }
Eliaquim Nascimento
Curtir tópico
+ 0
Responder
Post mais votado
19/06/2020
Você mesmo pode executar um benchmark para verificar qual solução é mais performática.
Basta usar que consegue mensurar.
Existem uma discussão sobre benchmark , pois deve-se levar em questão a CPU pode esta fazendo outras coisas enquanto executa seu código.
Então para obter um resposta o mais próximo da realidade é interessante executar os testes muitas vezes, mas muitas vezes mesmo.
Minha visão pessoal, de acordo com minha experiência, claro posso estar errado.
O for é mais performático do que função, pois nunca sabemos o que esta encapsulado nas funções.
Pessoalmente, prefiro map, reduce, filter, encontrar e utilizo-os há muito tempo.
Eles me ajudaram a escrever de forma limpa, precisa, rápida mantendo a legibilidade do código o que facilita imensamente a manutenção.
E é aderente ao paradigma de linguagem funcional.
Eu uso o loop quando não tenho mais escolha.
As vezes é muito mais oneroso perder-se me tentativas de otimizar (tunar) o um código do que usar um código menos performático, porém mais simples e aderente a tecnologia usada.
Ao invés de inventar a roda usa uma pronta e testada.
Algumas considerações quando for implementar uma solução:
Legibilidade e manutenção do código
Código de minimalista
Rapidez para codificar
Implementação vs otimização
Escolha pessoal
Basta usar
console.time () p
Existem uma discussão sobre benchmark , pois deve-se levar em questão a CPU pode esta fazendo outras coisas enquanto executa seu código.
Então para obter um resposta o mais próximo da realidade é interessante executar os testes muitas vezes, mas muitas vezes mesmo.
Minha visão pessoal, de acordo com minha experiência, claro posso estar errado.
O for é mais performático do que função, pois nunca sabemos o que esta encapsulado nas funções.
Pessoalmente, prefiro map, reduce, filter, encontrar e utilizo-os há muito tempo.
Eles me ajudaram a escrever de forma limpa, precisa, rápida mantendo a legibilidade do código o que facilita imensamente a manutenção.
E é aderente ao paradigma de linguagem funcional.
Eu uso o loop quando não tenho mais escolha.
As vezes é muito mais oneroso perder-se me tentativas de otimizar (tunar) o um código do que usar um código menos performático, porém mais simples e aderente a tecnologia usada.
Ao invés de inventar a roda usa uma pronta e testada.
Algumas considerações quando for implementar uma solução:
Legibilidade e manutenção do código
Código de minimalista
Rapidez para codificar
Implementação vs otimização
Escolha pessoal
Jothaz
Responder
Mais Posts
18/07/2020
Eliaquim Nascimento
Você mesmo pode executar um benchmark para verificar qual solução é mais performática.
Basta usar que consegue mensurar.
Existem uma discussão sobre benchmark , pois deve-se levar em questão a CPU pode esta fazendo outras coisas enquanto executa seu código.
Então para obter um resposta o mais próximo da realidade é interessante executar os testes muitas vezes, mas muitas vezes mesmo.
Minha visão pessoal, de acordo com minha experiência, claro posso estar errado.
O for é mais performático do que função, pois nunca sabemos o que esta encapsulado nas funções.
Pessoalmente, prefiro map, reduce, filter, encontrar e utilizo-os há muito tempo.
Eles me ajudaram a escrever de forma limpa, precisa, rápida mantendo a legibilidade do código o que facilita imensamente a manutenção.
E é aderente ao paradigma de linguagem funcional.
Eu uso o loop quando não tenho mais escolha.
As vezes é muito mais oneroso perder-se me tentativas de otimizar (tunar) o um código do que usar um código menos performático, porém mais simples e aderente a tecnologia usada.
Ao invés de inventar a roda usa uma pronta e testada.
Algumas considerações quando for implementar uma solução:
Legibilidade e manutenção do código
Código de minimalista
Rapidez para codificar
Implementação vs otimização
Escolha pessoal
Basta usar
console.time () p
Existem uma discussão sobre benchmark , pois deve-se levar em questão a CPU pode esta fazendo outras coisas enquanto executa seu código.
Então para obter um resposta o mais próximo da realidade é interessante executar os testes muitas vezes, mas muitas vezes mesmo.
Minha visão pessoal, de acordo com minha experiência, claro posso estar errado.
O for é mais performático do que função, pois nunca sabemos o que esta encapsulado nas funções.
Pessoalmente, prefiro map, reduce, filter, encontrar e utilizo-os há muito tempo.
Eles me ajudaram a escrever de forma limpa, precisa, rápida mantendo a legibilidade do código o que facilita imensamente a manutenção.
E é aderente ao paradigma de linguagem funcional.
Eu uso o loop quando não tenho mais escolha.
As vezes é muito mais oneroso perder-se me tentativas de otimizar (tunar) o um código do que usar um código menos performático, porém mais simples e aderente a tecnologia usada.
Ao invés de inventar a roda usa uma pronta e testada.
Algumas considerações quando for implementar uma solução:
Legibilidade e manutenção do código
Código de minimalista
Rapidez para codificar
Implementação vs otimização
Escolha pessoal
Olá Jothaz!
Muito obrigado pela sua resposta. Acabei usando o filter realmente pela rapidez e em muitos casos acabou sendo mais performático usar quando o array tem muitos elementos.
Valeu mesmo!
Responder
Clique aqui para fazer login e interagir na Comunidade :)