CONNEXION
  • RetourJeux
    • Tests
    • Soluces
    • Previews
    • Sorties
    • Hit Parade
    • Les + attendus
    • Tous les Jeux
  • RetourActu
    • Culture Geek
    • Astuces
    • Réalité Virtuelle
    • Rétrogaming
    • Toutes les actus
  • RetourHigh-Tech
    • Actus JVTECH
    • Bons plans
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTECH
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch
    • Xbox Series
    • Overwatch 2
    • FUT 23
    • League of Legends
    • Genshin Impact
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • PS4
  • One
  • Switch
  • Wii U
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Etoile Abonnement RSS

Sujet : Triage d'une table

DébutPage précedente
1
Page suivantePage suivante
JeSuisClarke JeSuisClarke
MP
Niveau 22
20 juillet 2018 à 02:50:43

Bonjour,

function sortTable(n) {
  var table, rows, switching, i, x, y, shouldSwitch, direction, switchcount = 0;
  table = document.getElementById("storageTable");
  switching = true;
  // On met la direction en ASC.
  direction = "asc";
  // On fait une boucle tant qu'il n y a pas eu de switching
  while (switching) {
    // On commence par dire qu'il n y a pas eu de switching
    switching = false;
    rows = table.getElementsByTagName("tr");
    // On fait une boucle à travers toutes les lignes de la table
    for (i = 1; i < (rows.length - 1); i++) {
      // On commence par dire qu'il ne doit pas avoir eu de switching
      shouldSwitch = false;
      // On prends deux éléments à comparer, la ligne actuelle et la ligne suivante
      x = rows[i].getElementsByTagName("td")[n];
      y = rows[i + 1].getElementsByTagName("td")[n];
      // On regarde si les deux lignes doivent changer de place selon la direction
      if (direction == "asc") {
        if (x.innerHTML.toLowerCase() > y.innerHTML.toLowerCase()) {
          // Si oui, on signale ce changement et on casse la boucle
          shouldSwitch = true;
          break;
        }
      } else if (direction == "desc") {
        if (x.innerHTML.toLowerCase() < y.innerHTML.toLowerCase()) {
          // Si oui, on signale ce changement et on casse la boucle
          shouldSwitch = true;
          break;
        }
      }
    }
    if (shouldSwitch) {
      // Si un switch a été marqué, on le fait et on dit qu'un switch a été fait
      rows[i].parentNode.insertBefore(rows[i + 1], rows[i]);
      switching = true;
      // Chaque fois qu'un switch a été fait, on augmente le compteur de 1
      switchcount ++;
    } else {
      // Si aucun switch a été fait et que la direction est ASC, on met la direction en DESC et on refait la boucle
      if (switchcount == 0 && direction == "asc") {
        direction = "desc";
        switching = true;
      }
    }
  }
}

Je comprends pas row et row +1 il compare pas une fois qu'on est par exemple a la row 6 si la row 4 et pas plus grande que la row 1 ?
Le parentNode c'est pour pouvoir interagir sur la balise table ?

Message édité le 20 juillet 2018 à 02:54:28 par JeSuisClarke
20_cent_2017 20_cent_2017
MP
Niveau 10
20 juillet 2018 à 07:20:08

Trop compliqué...
trop de variable ....
tu parcour ton tableau tu check ta valeur avec la présidente tu switch. Tu le fais tant que le résultat n’est pas bon.
C’edt Du récursif. Passe les bonne var en paramètres ( direction)
Ensuite y’a des fonctions qui existent pour ça !

DébutPage précedente
1
Page suivantePage suivante
Répondre
Prévisu
?
Victime de harcèlement en ligne : comment réagir ?
Infos 0 connecté(s)

Gestion du forum

Modérateurs : Thymotep
Contacter les modérateurs - Règles du forum

Sujets à ne pas manquer

La vidéo du moment