Arrays est le nom anglais des champs de données ou, plus simplement, des tables.
Une variable quelconque ne peut être affectée que d’une valeur. En revanche, une table peut en contenir plusieurs. On parle des éléments d’une table, chacun étant doté d’une valeur propre.
Les éléments individuels se comportent chacune comme une variable. Au lieu de définir 10 variables distinctes, nous pouvons réaliser le même travail avec une seule table de 10 éléments.
Les tables présentent un avantage intéressant : leurs éléments individuels sont numérotés. Ainsi dans une boucle, un compteur peut se charger d’en parcourir successivement tous les éléments.
Avec des variables conventionnelles, de telles opérations ne sont pas possibles .
Une nouvelle table peut être crée avec new et le constructeur Array(). L’expression entre parenthèses spécifie le nombre d’éléments formant la table. Trois possibilités s’offrent à vous :
Avec le constructeur Array sans argument, la table crée sera vide. Grâce à des méthodes spéciales, elle pourra être peuplé ultérieurement.
Pour créer une table doté de n éléments, il suffit d’indiquer ce nombre comme argument unique.
Les éléments sont affectés dans ce cas de la valeur undefined, au départ.
En stipulant plusieurs arguments, chacun est affecté à un élément de la table, qui contient autant d’entrées :
Il existe différentes méthodes facilitant le travail avec des tables.
Voici le tableau récapitulatif :
Les méthodes de modification des tables :
|
Méthode |
|
|
join |
|
|
concat |
|
|
Push |
|
|
pop |
|
|
shift |
|
|
unshift |
|
|
Reverse |
|
|
Sort |
|
<script language="JavaScript"><!--
/*
* Ce JavaScript dispose d'une petite base de données et de fonctions
* permettant de travailler avec cette base.
*
* La base de données contient la liste des CD audio.
* Elle peut bien évidemment être étendue.
*/
// En HTML, chaque ligne est terminée par <br>.
// print(); se charge de ce travail
function print(msg)
{
document.write(msg+'<br>');
return true;
}
// -----------------------------------------------------------------
// Ici commence la base de données.
var cd = new Array();
cd[0] = new Array();
cd[0]["interprete"] = "Mon interprete favori";
cd[0]["album"] = "Greatest Hits";
cd[0][1] = ["Mon interprete favori","Son premier succes","03:17"]
cd[0][2] = ["Mon interprete favori","Son deuxième succes","03:21"]
cd[0][3] = ["Mon interprete favori","Son troisième succes","04:31"]
cd[0][4] = ["Mon interprete favori","Son quatrième succes","05:07"]
cd[1] = new Array();
cd[1]["interprete"] = "Divers";
cd[1]["album"] = "Mon premier CD audio gravé personnellement";
cd[1][1] = ["Un groupe quelconque"," Un succes quelconque ","03:08"]
cd[1][2] = ["Un groupe francais","Un autre succes","03:54"]
cd[1][3] = ["Une vedette americaine","Encore un succes","04:27"]
// -----------------------------------------------------------------
// Voici les fonctions qui balayent la base de données.
// Répertorie tous les CD
// Syntaxe : list();
function list()
{
for(var i = 0; i < cd.length; i++)
{
print("<b>CD " + i + " - " + cd[i]["interprete"] + ": "
+ cd[i]["album"] + "</b>");
}
print("");
}
// Répertorie tous les CD et en affiche le contenu
// Syntaxe : listall();
function listall()
{
for(var i = 0; i < cd.length; i++)
{
print("<b>CD " + i + " - " + cd[i]["interprete"] + ": "
+ cd[i]["album"] + "</b>");
for(var j = 1; j < cd[i].length; j++)
{
print(j + ": [" + cd[i][j][2] + "] " + cd[i][j][0] + ": "
+ cd[i][j][1]);
}
print("");
}
}
// Affiche le contenu d un CD
// Syntaxe : show(Numero);
function show(n)
{
print("<b>CD " + n + " - " + cd[n]["interprete"] + ": "
+ cd[n]["album"] + "</b>");
for(var j = 1; j < cd[n].length; j++)
{
print(j + ": [" + cd[n][j][2] + "] " + cd[n][j][0] + ": "
+ cd[n][j][1]);
}
print("");
}
// parcourt tous les CD
// Syntaxe : search(Interprete, Titre, longueur du titre);
function search(artist,songname,length)
{
for(var i = 0; i < cd.length; i++)
{
for(var j = 1; j < cd[i].length; j++)
{
if((cd[i][j][0] == artist)
||(cd[i][j][1] == songname)
||(cd[i][j][2] == length))
{
print("<b>CD " + i + " - " + cd[i]["interprete"] + ": "
+ cd[i]["album"] + "</b>");
print(j + ": [" + cd[i][j][2] + "] " + cd[i][j][0] + ": "
+ cd[i][j][1]);
}
}
}
print("");
}
// -----------------------------------------------------------------
// Ici commence le programme effectif
list();
//listall();
show(0);
search("","Son deuxième succes","");
//--></script>