Skip to content

Instantly share code, notes, and snippets.

@kelvysmoura
Last active June 13, 2018 15:48
Show Gist options
  • Save kelvysmoura/008a459f1d9651094909adea39dd6c33 to your computer and use it in GitHub Desktop.
Save kelvysmoura/008a459f1d9651094909adea39dd6c33 to your computer and use it in GitHub Desktop.
ECMAScript 6 - filter()

ECMAScript 6 - filter()

Método filer()

Sintaxe:

yourArray.filter(function(p1, p2, p3){
    // your code 
});
  • filter() é usada para filtrar itens de um array

  • Função de callback retorna 3 parâmetros

    • p1: Os intens do array
    • p2: As chaves do array
    • p3: O array que foi passado
  • Antes do método filter() poderia obter o mesmo resultado com o método for()

Exibindo filmes por categoria suspense com for()

Exemplo com método for()

var filmes = [
  {categoria: 'suspense', titulo: 'Ilha do medo', ano: 2010},
  {categoria: 'suspense', titulo: 'Amnésia', ano: 2015},
  {categoria: 'terror', titulo: 'Verónica', ano: 2017},
  {categoria: 'terror', titulo: 'Possessão', ano: 2012},
  {categoria: 'brasileiro', titulo: 'Tropa de elite', ano: 2008},
  {categoria: 'brasileiro', titulo: 'Faroeste caboclo', ano: 2013}
];

var filmesSuspense = [];
for(var i = 0; i < filmes.length; i++){
  if(filmes[i].categoria === 'suspense'){
    filmesSuspense.push(filmes[i]);
  }
}
console.log(filmesSuspense);

/*
resultado
[
  { categoria: 'suspense', titulo: 'Ilha do medo', ano: 2010 },
  { categoria: 'suspense', titulo: 'Amnésia', ano: 2015 }
]
*/

Exibindo filmes por categoria brasileiro com filter()

Exemplo com método filter()

// USANDO O MESMO ARRAY filmes DEFINIDO ACIMA

var filmesBrasileiro = filmes.filter(function(p1,p2,p3){
  return p1.categoria == 'brasileiro';
});
console.log(filmesBrasileiro);

/*
resultado
[
  { categoria: 'brasileiro', titulo: 'Tropa de elite', ano: 2008 },
  { categoria: 'brasileiro', titulo: 'Faroeste caboclo', ano: 2013 }
]
*/

Testar codigo no repl.it


Gitter Gitter Gitter

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment