L'objet global Array, grâce à ses multiples méthodes, permet de manipuler les tableaux (array). Dans cet article, nous allons regarder les manipulations de bases les plus courantes.

isArray()

Retourne un booléen (true/false) indiquant si l'élément spécifié est bel et bien un tableau.

Par exemple:

const yearsArr = [1990, 2010, 1980];
Array.isArray(yearsArr); // true

const ex1 = "Chaine de caractères";
Array.isArray(ex1); // false

const ex2 = 2010;
Array.isArray(ex2); // false

includes()

Retourne un booléan (true/false) indiquant si un élément est présent ou non dans un tableau.

Par exemple:

const yearsArr = [1990, 2010, 1980];

yearsArr.includes(2010); // true
yearsArr.includes(1995); // false

find()

Retourne le premier élément dans le tableau correspondant à une condition spécifique. Si aucun élément n'est trouvé, undefined est retourné.

Par exemple:

const yearsArr = [1990, 2010, 1980];

yearsArr.find(year => year > 2000); // 2010
yearsArr.find(year => year > 2020); // undefined

findIndex()

Retourne la position du premier élément dans le tableau correspondant à une condition spécifique. Si aucun élément n'est trouvé, -1 sera retourné.

Par exemple:

const yearsArr = [1990, 2010, 1980];

yearsArr.findIndex(1990); // 0
yearsArr.findIndex(2010); // 1
yearsArr.findIndex(1995); // -1

sort()

Trie les éléments d'un tableau.

Si une fonction est passée en paramètre, celle-ci boucle sur chaque élément du tableau et reçoit en paramètre l'élément courant (a) ainsi que le suivant (b). Si cette fonction retourne un élément égal ou inférieur à 0, l'élément courant (a) est placé avant l'élément suivant (b). À l'opposé, si le résultat est supérieur à 0. l'élément suivant (b) est placé avant l'élément courant (a).

Si aucune fonction n'est passée en paramètre, les éléments sont triés en ordre croissant:

Croissant

const yearsArr = [1990, 2010, 1980];

yearsArr.sort(); // [1980, 1990, 2010];

Décroissant

Pour trier en ordre décroissant, il faut comparer la valeur de a et de b.

const yearsArr = [1990, 2010, 1980];

yearsArr.sort((a, b) => b - a); // [2010, 1990, 1980]

Lors du traitement du premier item dans le tableau, 1990 (a) est comparé à 2010 (b). 2010 - 1990 = 20. Ce nombre est supérieur à 0, donc 2010 (b) est placé avant 1990 (a).

Au tour de l'item suivant, 1990 est rendu le 2e item, donc 1990 (a) est comparé à l'élément suivant 1980 (b). 1980 - 1990 = -10. Ce nombre est inférieur à 0, donc 1990 (a) est placé avant 1980 (b).

Aléatoire

Pour mélanger un tableau, il faut interchanger de position l'élément courant avec le suivant de façon aléatoire. Pour ce faire, il suffit que la fonction passée à sort() retourne la moitié du temps un nombre inférieur ou égal à 0 et l'autre un nombre supérieur.

const yearsArr = [1990, 2010, 1980];

yearsArr.sort(() => Math.random() - 0.5);

shift()

Retire le premier élément du tableau et le retourne. Si le tableau est vide, shift() retournera undefined.

Par exemple:

const yearsArr = [1990, 2010, 1980];
const firstYear = yearsArr.shift();

console.log(firstYear) // 1990
console.log(yearsArr) // [2010, 1980]

pop()

À l'opposé de shift()pop() retire le dernier élément du tableau et le retourne. Si le tableau est vide, pop() retournera undefined.

Par exemple:

const yearsArr = [1990, 2010, 1980];
const lastYear = yearsArr.pop();

console.log(lastYear) // 1980
console.log(yearsArr) // [1990, 2010]

slice()

Retourne un nouveau tableau constitué des éléments se trouvant entre un index de départ et un index de fin (optionnel).

Par exemple, si seulement un index de départ est spécifié, le nouveau tableau sera constitué de l'élément à cet index et de tous ceux le suivant:

const yearsArr = [1990, 2010, 1980];

yearsArr.slice(1); // [2010, 1980]

Si l'index de départ et de fin est spécifié, le nouveau tableau sera constitué des éléments entre ces deux index:

const yearsArr = [1990, 2010, 1980];

yearsArr.slice(0, 2); // [1990, 2010]

concat()

Retourne un nouveau tableau constitué des éléments d'un premier tableau et de ceux d'un deuxième.

Par exemple:

const yearsArr = [1990, 2010, 1980];
const extraYearsArr = [2000, 2020];

yearsArr.concat(extraYearsArr); // [1990, 2010, 1980, 2000, 2020]