Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save leandrodasilvaalves/6b90c69018cccf2497feabf2733bcd19 to your computer and use it in GitHub Desktop.
Save leandrodasilvaalves/6b90c69018cccf2497feabf2733bcd19 to your computer and use it in GitHub Desktop.
Exemplo de como aplicar filtro de valores distintos em um array javascript

Select distinct em um Array javascript

Em diversas situações temos um array com valores repetidos, porém queremos obter somente os valores disintos, podemos aplicar o método filter o array para obtê-los, como no exemplo abaixo:

var arr = [1,'c',2,1,7,,1,'b',1,2,2,2,'a',2,3,3,'a',3,4,4,'c','c','4d',5,5,5,6];

var _distinct = function(array){
    return array.filter(function(value, index, self){
        return self.indexOf(value) == index;
    });
};

console.log(_distinct(arr)); //[1, "c", 2, 7, "b", "a", 3, 4, "4d", 5, 6]

A seguir, um exemplo de como filtrar os distindos em um array de objetos:

var produtos = [
    {
        nome : "Arroz",
        categoria : "Alimento"
    },
    {
        nome: "Feijão",
        categoria: "Alimento"
    },
    {
        nome : "Alvejante",
        categoria : "Limpeza",
    },
    { 
        nome : "Sabão em pó",
        categoria : "Limpeza",
    },
    {
        nome : "Banana",
        categoria: "Horti-Fruti"
    }
];

var _distinct = function(array){
    return array.map(function(item){
	return item.categoria;
    }).filter(function(value, index, self){
        return self.indexOf(value) == index;
    });
};

console.log(_distinct(produtos)); //["Alimento", "Limpeza", "Horti-Fruti"]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment