Javascript explication svp :)

Résolu
Bonjour a tous , je fais appelle a votre aide car j'aurai besoin que quelqu'un m'explique une fonction que j'ai introduit dans mon site , je ne la comprends pas totalement et il me faudrait si possible une explication très détaillé de "chaque ligne" svp ( c'est un projet effectué en classe , et a vrai dire je ne suis pas très doué en informatique , ce qui m'empeche de comprendre les explications pour connaisseurs des sites ( meme site du zero )
voici le fonction :

// Création de la base de données
var base=new InitBase();
base.Add("foot.html","ballon,football,foot");
base.Add("rambo.html","dof,fod");
// COMPLETEZ ICI la base de données
// base.Add( , ) Jusque la je comprends :)

function disp(txt) { document.write(txt) }
function InitBase() {
this.nb_item=0;
this.Add=AddItem;
this.Search=SearchItem;
}
function AddItem(page,cle) {
var nb = this.nb_item;
var item = new Object;
item.page=page;
item.cle=cle;
this[nb]=item;
this.nb_item++;
}

function SearchItem(txt) {
// txt contient le texte de la recherche

var n=base.nb_item;
var indice=-1;
if (txt=="") {alert("Entrez un mot pour la recherche"); }
else
{ for (var i=0; i<n; i++)
{if (base[i].cle.toUpperCase().indexOf(txt.toUpperCase(),0)!="-1") {indice=i;} // modier le -1 en 1 pour avoir une base positive
}
if (indice>=0) {window.location=base[indice].page;} // Recherche fructueuse
else {window.location="error.html";} // Redirection vers la page NOT FOUND
}
}

Je vous remercie d'avance :)

3 réponses

  1. Bonsoir je vous remercie vraiment pour votre réponse !
    C'est assez claire malgré quelque point d'ombre tout de même que j'essaierai d'éclaircir avec mon camarade lundi soir ( nous sommes 2 par projet)
    Si jamais une difficulté subsiste, je n'hésiterai pas à vous remettre un commentaire lundi soir, merci encore ! Bonne soirée
    1. Bonjour, tout dabord, je pense que tu t'es trompé de forum, néanmoins voici une petite explication.
      J'ai éssayé de rester très "Bas niveaux" pour les explications

      <SCRIPT language = "JavaScript">
      // Création de la base de données
      var base=new InitBase();
      base.Add("foot.html","ballon,football,foot");
      base.Add("rambo.html","dof,fod"); // ICI, appel de la fonction dont je parle par la
      //suite: AddItem(page,cle)

      // Pr des raisons de comprehension je commence la description de cette
      // fonction ici.
      // page == "foot.html" et cle = "ballon,football,foot" ce sont les
      //arguments de la fonction AddItem

      // COMPLETEZ ICI la base de données
      // base.Add( , )

      function disp(txt) { document.write(txt) }
      function InitBase() {
      this.nb_item=0;
      this.Add=AddItem;
      // ICI, création d'une variable Add qui contient la fonction AddItem (Qui est //appelée plus haut avec les arguments)
      this.Search=SearchItem;
      }
      function AddItem(page,cle) {
      // La fonction se charge donc de créer un objet item ayant deux attributs page
      //et cle. A chaque ajout d'un nouveau couple (page, cle) l'attribut nb_item
      //s'incrémente de +1
      //Et le couple est enregistré comme un element d'un tableau (La fonction)
      var nb = this.nb_item;
      var item = new Object;
      item.page=page;
      item.cle=cle;
      this[nb]=item;
      this.nb_item++;
      }

      function SearchItem(txt) {
      // txt contient le texte de la recherche

      var n=base.nb_item;
      var indice=-1;
      if (txt=="") {alert("Entrez un mot pour la recherche"); }
      // Si tu tapes entrez ou tu valides ton formulaire sans entrer de mot, il te
      //signale d'entrer un mot pour la recherche
      else
      { for (var i=0; i<n; i++)
      {if (base[i].cle.toUpperCase().indexOf(txt.toUpperCase(),0)!="-1") {indice=i;}
      // Recherche la présence du mot recherché, indépendement de la casse, dans
      //chaque mot de la base grace à la fonction index.of() qui te retourne la
      //valeur de la position de la première occurence du mot que tu lui passe en
      //paramètre, dans la phrase sur laquelle tu l'appelles.
      }
      if (indice>=0) {window.location=base[indice].page;}
      // Ainsi si l'occurence trouvér précedement est positive, alors le mot a été
      //retrouvé et donc il affiche la page
      else {window.location="error.html";} // Si non redirection
      }
      }

      </SCRIPT>