Valores unicos AngularJS
Filtro pra não repetir valores iguais de um array
by Diego Augusto
HTML
<script src="http://code.angularjs.org/angular-1.0.1.js"></script>
<div ng-controller="MyCtrl">
<ul ng-repeat="item in dados| unique:'horario2'">
<li>{{item.nome}} -- {{item.horario1}} -- {{item.horario2}}</li>
</ul>
</div>
JavaScript
var myApp = angular.module('myApp',[]);
myApp.filter('unique', function() {
return function(colecao, campo) {
var saida = [],
keys = [];
angular.forEach(colecao, function(item) {
var key = item[campo];
if(keys.indexOf(key) === -1) {
keys.push(key);
saida.push(item);
}
});
return saida;
};
})
function MyCtrl($scope, $filter) {
$scope.dados = [
{'id':1,'nome':'dom','horario1':'01:00','horario2':'02:00'},
{'id':1,'nome':'seg','horario1':'07:00','horario2':'08:00'},
{'id':1,'nome':'ter','horario1':'09:00','horario2':'10:00'},
{'id':1,'nome':'qua','horario1':'01:00','horario2':'02:00'},
]
function init(){
var unicos = $filter('unique')($scope.dados, 'horario2');
console.log(unicos)
}
init();
}