<!-- fichier index.html -->

<!DOCTYPE html>
<html lang="fr">
  <head><title>index.html</title></head>
  <body>
    <div id="app">
      <input v-model="recherche"/>
      <ul>
        <li v-for="item in recherchePersonne">
          {{ item.prenom }} {{ item.nom }} - {{ item.age }} ans
        </li>
      </ul>
    </div>
    <!-- chargement de la librairie Vue.js -->
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script>
      let vm = new Vue({
        el: "#app",
        data: {
          personnes: [
            { prenom: 'Chuck', nom: 'Norris', age: 24 },
            { prenom: 'Bruce', nom: 'Lee', age: 27 },
            { prenom: 'Uma', nom: 'Thurman', age: 22 },
          ],
          recherche: '',
        },
        computed: {
          recherchePersonne() {
            if (this.recherche === '') return this.personnes;

            return this.personnes
              .filter(personne => {
                return personne.prenom.toLowerCase().match(this.recherche.toLowerCase()) !== null || 
                  personne.nom.toLowerCase().match(this.recherche.toLowerCase) !== null;
              })
              .sort((a, b) => a.age - b.age);
          }
        },
        methods: {
          vieillir() {
            this.personnes.forEach((personne, index) => {
              personne.age += 5;
              this.$set(this.personnes, index, personne);
            });
          }
        },
      });
    </script>
  </body>
</html>
