IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

FAQ MooToolsConsultez toutes les FAQ

Nombre d'auteurs : 6, nombre de questions : 67, dernière mise à jour : 1 décembre 2012 

 
OuvrirSommaireLes tableaux

Il est tout à fait possible de réunir les éléments d'un tableau avec ceux d'un autre tableau. Au moins trois possibilités existent.

1)Les éléments en premières positions ensemble, ceux en secondes positions ensemble et ainsi de suite. C'est grâce à la méthode associate que l'on parvient à faire cela très facilement. Le résultat obtenu est un tableau de type clé : valeur :

 
Sélectionnez
var noms = ['Dupont', 'Durand', 'Pignon'];
var prenoms = ['Jean', 'Jacques', 'François'];

var noms_complets = prenoms.associate(noms);
//noms_complets = {'Dupont': 'Jean', 'Durand': 'Jacques', 'Pignon': 'François'}

alert("Dupont");
//Résultat : Jean


2) Ajouter les éléments d'un tableau à la suite des éléments de l'autre tableau. Dans ce cas, c'est la méthode append que l'on utilisera. Le résultat est le tableau sur lequel on exécute l'append augmenté des valeurs du tableau passé en paramètre :

 
Sélectionnez
var sport_hiver = new Array("ski", "hockey sur glace", "bobsleigh", "curling");
var sport_salle = new Array("mini foot", "basketball", "handball");

var sports = sport_hiver.append(sport_salle);
//Résultat : sports = sport_hiver = ["ski", "hockey sur glace", "bobsleigh", "curling", "mini foot", "basketball", "handball"]


3) Obtenir un tableau sans doublon en combinant les deux tableaux. La méthode combine ne prend en compte qu'une seule fois chaque valeur :

 
Sélectionnez
var sport_salle = new Array("mini foot", "basketball", "handball", "tennis");
var sport_exterieur = new Array("football", "tennis", "base ball");

var sports = sport_salle.combine(sport_exterieur);
//Résultats : sports = ["mini foot", "basketball", "handball", "tennis", "football", "base ball"]
Mis à jour le 2012-12-01  par vermine

La méthode clean permet d'enlever les valeurs fort courantes null ou undefined d'un tableau. C'est un nouveau tableau qui est renvoyé :

 
Sélectionnez
var test1 = 0;
var test2 = null;

var mon_tableau = new Array(1, "Deux", true, undefined, "", test1, test2);
var nouveau_tableau = mon_tableau.clean();

//Résultat : nouveau_tableau = [1, "Deux", true, "", 0]

Attention, la valeur "" n'est pas considérée comme null !

Créé le 2010-12-31  par vermine

Lien : Comment supprimer les occurrences d'une valeur dans un tableau, ou bien le vider totalement ?

Au lieu de devoir parcourir tout le tableau et vérifier l'existence d'une valeur dans le tableau, il existe la méthode contains qui renvoie true si la valeur est retrouvée au moins une fois dans le tableau et false sinon :

 
Sélectionnez
var mon_tableau = new Array("a", "b", "c");

var contient_a = mon_tableau.contains("a");
//Résultat : true

var contient_d = mon_tableau.contains("d");
//Résultat : false
Créé le 2010-12-31  par vermine

Avec la méthode each de Array, on applique très facilement une fonction à toutes les valeurs du tableau. La méthode each accepte un premier paramètre qui est la fonction. Cette déclaration de fonction connait l'item, l'index de l'item et array, le tableau en lui-même.

 
Sélectionnez
var mon_tableau = new Array('Bonjour', 'Salut', 'Bonsoir', 'Au revoir');
var nom = "Toto";

mon_tableau.each(function(item, index){
    alert(index + " : " + item + " " + nom);
});

//Résultats :
// 0 : Bonjour Toto
// 1 : Salut Toto
// 2 : Bonsoir Toto
// 3 : Au revoir Toto


Le second paramètre de each est optionnel. C'est un objet que l'on désire passer à la fonction et qui sera l'objet pointé par this :

 
Sélectionnez
mon_tableau.each(function(item, index){
    alert(index + " : " + item + " " + this);
}, nom);


On peut bien entendu déclarer sa fonction en dehors et l'appeler en lui passant les paramètres nécessaires :

 
Sélectionnez
function ma_fonction(index, item, nom)
{
   alert(index + " : " + item + " " + nom);
}

mon_tableau.each(function(item, index){
    ma_fonction(index, item, this);
}, nom);
Créé le 2010-12-31  par vermine

Lien : Comment vérifier une condition sur tous les éléments d'un tableau ? Et comment les récupérer ?

1) Pour nettoyer un tableau d'une valeur précise, on peut se servir de la méthode erase qui renverra le tableau sans les occurrences de la valeur spécifiée :

 
Sélectionnez
var mon_tableau = new Array("Jean", "Mathieu", "Judas", "Pierre", "Judas", "Luc", "Thomas", "Judas");
mon_tableau = mon_tableau.erase("Judas");
//Résultats : mon_tableau = ["Jean", "Mathieu", "Pierre", "Luc", "Thomas"]


2) Pour vider totalement un tableau, on passe par la méthode empty :

 
Sélectionnez
var mon_tableau = new Array("Jean", "Mathieu", "Pierre", "Luc");
mon_tableau = mon_tableau.empty();
//Résultats : mon_tableau = []
Mis à jour le 2012-12-01  par vermine

Lien : Comment nettoyer les valeurs null dans un tableau ?

Je vais parler ici de méthodes qui sont fournies pour les navigateurs qui n'implémentent pas le JavaScript 1.6.


1) La méthode every permet de vérifier une condition sur toutes les occurrences d'un tableau. Si la condition est à chaque fois vérifiée, la méthode renvoie true, sinon elle renvoie false. L'exemple le plus courant est de vérifier si les valeurs sont assez grandes :

 
Sélectionnez
var assez_grand = [10, 4, 25, 100].every(function(item, index){
    return item > 20; //Pour chaque valeur, on vérifie qu'elle est supérieure à 20
}); 

//assez_grand = false

var assez_grand = [21, 31, 25, 100].every(function(item, index){
    return item > 20; //Pour chaque valeur, on vérifie qu'elle est supérieure à 20
}); 

//assez_grand = true


2) Cependant, il arrive qu'on veuille simplement savoir si au moins une des valeurs respecte la condition. Dans ce cas-là, il y a la méthode some qui renvoi true lorsqu'elle trouve une valeur qui satisfait à la condition :

 
Sélectionnez
var assez_grand = [10, 4, 25, 100].some(function(item, index){
    return item > 20; //On ne prend que les valeurs supérieures à 20
}); 

//assez_grand = true;


3) Mais parfois, on désire récupérer simplement les valeurs qui vérifient la condition. On utilise alors la méthode filter. Cette méthode renvoie un tableau avec les valeurs qui ont respecté une condition :

 
Sélectionnez
var assez_grand = [10, 4, 25, 100].filter(function(item, index){
    return item > 20; //On ne prend que les valeurs supérieures à 20
}); 

//assez_grand = [25, 100];
Créé le 2010-12-31  par vermine

Lien : Comment appliquer une fonction à tous les éléments d'un tableau ?

Pour une raison ou une autre, il se peut que l'on désire obtenir un élément au hasard du tableau. La méthode effective porte le nom de getRandom et renvoie un élément au hasard :

 
Sélectionnez
var mon_tableau = new Array(1, 2, 3, 4, 5);
var chiffre_aleatoire = mon_tableau.getRandom();


Tandis que si l'on veut assurément le dernier élément du tableau, on se servira de la méthode getLast() :

 
Sélectionnez
var mon_tableau = new Array(1, 2, 3, 4, 5);
var dernier_chiffre = mon_tableau.getLast();
//Résultat : dernier_chiffre = 5
Créé le 2010-12-31  par vermine

Si l'on désire ajouter un élément dans un tableau tout en évitant les doublons, on utilise la méthode include qui n'ajoutera l'élément dans le tableau que s'il ne s'y trouve pas déjà. Elle renvoie le tableau avec les anciennes et les nouvelles valeurs :

 
Sélectionnez
var mon_tableau = new Array("Un", "Deux", "Quatre");
mon_tableau = mon_tableau.include("Trois");
mon_tableau = mon_tableau.include("Quatre");
//Résultat : mon_tableau = ["Un", "Deux", "Trois", "Quatre"]
Mis à jour le 2012-12-01  par vermine, NoSmoking

MooTools propose la fonction clone de Array qui fait une copie conforme du tableau passé en paramètre :

 
Sélectionnez
var mon_tableau = new Array("Truc", "Bidule", "Machin", "Chose");
var copie_mon_tableau = Array.clone(mon_tableau);
//Résultat : copie_mon_tableau= ["Truc", "Bidule", "Machin", "Chose"];


[Obsolète]
Les versions 1.1 et 1.2 utilisent la fonction $A :

 
Sélectionnez
var mon_tableau = new Array("Truc", "Bidule", "Machin", "Chose");
var copie_mon_tableau = $A(mon_tableau);
//Résultat : copie_mon_tableau= ["Truc", "Bidule", "Machin", "Chose"];
Mis à jour le 2012-12-01  par vermine
  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2010 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.