Lista Animais
Lista animais, donos, idades e media dew eidades
by Thávia Farias
HTML
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<script src="https://code.jquery.com/jquery-2.2.3.min.js"></script>
<body ng-app='dicionario'>
<div ng-controller='ctrl'>
<table class='table table-bordered table-striped'>
<thead>
<tr>
<th>Espécie</th>
<th>Nome</th>
<th>Idade</th>
<th>Dono</th>
<th>Media</th>
</tr>
</thead>
<tbody>
<tr ng-repeat='ax in lista1'>
<td>{{ax.especie}}</td>
<td>{{ax.nome}}</td>
<td>{{ax.idade}}</td>
<td>{{ax.dono}}</td>
<td>{{ax.media}}</td>
</tr>
</tbody>
</table>
</div>
</body>
JavaScript
angular.module('dicionario', [])
.controller('ctrl', function($scope, $http) {
$scope.lista1 = [{
'idade': 8,
'especie': 'Gato',
'nome': 'Felix'
}, {
'idade': 57,
'especie': 'Tartaruga',
'nome': 'Michelangelo'
}, {
'idade': 12,
'especie': 'Cao',
'nome': 'Rantanplan'
}, {
'idade': 2,
'especie': 'Peixe',
'nome': 'Nemo'
}, {
'idade': 45,
'especie': 'Tartaruga',
'nome': 'Leonardo'
}, {
'idade': 9,
'especie': 'Cao',
'nome': 'Milo'
}, {
'idade': 57,
'especie': 'Tartaruga',
'nome': 'Raphael'
}, {
'idade': 4,
'especie': 'Peixe',
'nome': 'Dory'
}];
$scope.lista2 = [{
'dono': 'Ana',
'nome': 'Michelangelo'
}, {
'dono': 'Eva',
'nome': 'Dory'
}, {
'dono': 'Ada',
'nome': 'Rantanplan'
}, {
'dono': 'Ana',
'nome': 'Leonardo'
}, {
'dono': 'Eva',
'nome': 'Felix'
}, {
'dono': 'Ana',
'nome': 'Raphael'
}, {
'dono': 'Ana',
'nome': 'Milo'
}, {
'dono': 'Eva',
'nome': 'Nemo'
}];
$scope.especies = [];
$scope.media = [];
angular.forEach($scope.lista1, function(lista1) {
$scope.especies.push(lista1.especie);
});
jQuery.unique($scope.especies); //tira os duplicados
angular.forEach($scope.especies, function(esp) {
var somarIdade = 0;
var contarIdades = 0;
angular.forEach($scope.lista1, function(lista1) {
if (esp == lista1.especie) {
contarIdades++;
somarIdade = somarIdade + lista1.idade;
}
});
$scope.media.push({
media: somarIdade / contarIdades,
especie: esp
});
});
angular.forEach($scope.lista1, function(lista1) {
angular.forEach($scope.lista2, function(lista2) {
if (lista1.nome == lista2.nome)
lista1.dono = lista2.dono;
});
angular.forEach($scope.media, function(valor) {
if (lista1.especie == valor.especie) {
lista1.media = valor.media;
}
})
...