FAQ MooTools
FAQ MooToolsConsultez toutes les FAQ
Nombre d'auteurs : 6, nombre de questions : 67, dernière mise à jour : 15 juin 2021
- Comment réunir deux tableaux ?
- Comment nettoyer les valeurs null dans un tableau ?
- Comment savoir si une valeur est contenue dans un tableau ?
- Comment appliquer une fonction à tous les éléments d'un tableau ?
- Comment supprimer les occurrences d'une valeur dans un tableau, ou bien le vider totalement ?
- Comment vérifier une condition sur tous les éléments d'un tableau ? Et comment les récupérer ?
- Comment obtenir un ou bien le dernier élément d'un tableau ?
- Comment ajouter un élément à un tableau s'il n'y existe pas ?
- Comment copier un tableau ?
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 :
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 :
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 :
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"]
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é :
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 !
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 :
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.
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 :
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 :
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 :
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 :
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 :
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 :
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 :
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 :
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() :
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 :
MooTools propose la fonction clone de Array qui fait une copie conforme du tableau passé en paramètre :
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 :