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;

      }

    })

 ...