tab.filter

1
tab.filter(function([value, index, array]){...})

Cette fonction retourne un nouveau tableau ne contenant que les éléments dont la fonction à retournée true.

Ce tableau ne contient pas forcément autant de cases que le tableau original.

la valeur retournée par la fonction est le booléen true ou false.

value : représente un élément du tableau à chaque tour de boucle

index : représente l'index de l'élément du tableau à chaque tour de boucle (facultatif)

array : représente le tableau lui-même (facultatif)

ExempleGarde les valeurs multiples de 3

See the Pen cours-js-array-filter-2 by BCMM-W2D (@bcmm-w2d) on CodePen.

Array : filter

Équivalent avec fonction fléchée

1
const listeNombres = [5, 12, 7, 9, 3, 17, 8, 2, 15, 14];
2
3
const tab = listeNombres.filter((nombre)=> nombre % 3 == 0);

Équivalent avec forEach

1
const listeNombres = [5, 12, 7, 9, 3, 17, 8, 2, 15, 14];
2
3
const tab = [];
4
listeNombres.forEach(function (nombre) {
5
  if(nombre % 3 == 0) tab.push(nombre);
6
});

Équivalent avec for of

1
const listeNombres = [5, 12, 7, 9, 3, 17, 8, 2, 15, 14];
2
3
const tab = [];
4
for (let nombre of listeNombres) {
5
  if(nombre % 3 == 0) tab.push(nombre);
6
}

Équivalent avec for

1
const listeNombres = [5, 12, 7, 9, 3, 17, 8, 2, 15, 14];
2
3
const tab = [];
4
for (let i = 0; i < listeNombres.length; i++) {
5
  if(listeNombres[i] % 3 == 0) tab[i] = listeNombres[i];
6
}

ExempleGarde les nombres entre 6 et 13

See the Pen cours-js-array-filter-2 by BCMM-W2D (@bcmm-w2d) on CodePen.

Array : filter

Équivalent avec fonction fléchée

1
const listeNombres = [5, 12, 7, 9, 3, 17, 8, 2, 15, 14];
2
3
const tab = listeNombres.filter((nombre) => nombre > 6 && nombre < 13);

Équivalent avec forEach

1
const listeNombres = [5, 12, 7, 9, 3, 17, 8, 2, 15, 14];
2
3
const tab = [];
4
listeNombres.forEach(function (nombre) {
5
  if(nombre > 6 && $nombre < 13) tab.push(nombre);
6
});

Équivalent avec for of

1
const listeNombres = [5, 12, 7, 9, 3, 17, 8, 2, 15, 14];
2
3
const tab = [];
4
for (let nombre of listeNombres) {
5
  if(nombre > 6 && $nombre < 13) tab.push(nombre);
6
}

Équivalent avec for

1
const listeNombres = [5, 12, 7, 9, 3, 17, 8, 2, 15, 14];
2
3
const tab = [];
4
for (let i = 0; i < listeNombres.length; i++) {
5
  if(listeNombres[i] > 6 && listeNombres[i] < 13) tab[i] = listeNombres[i];
6
}

ExempleGarde les mots de moins de 6 caractères

See the Pen cours-js-array-filter-3 by BCMM-W2D (@bcmm-w2d) on CodePen.

Array : filter

Équivalent avec fonction fléchée

1
const listeMots = ['bonjour', 'hello', 'matin', 'soir', 'journée', 'maintenant', 'après'];
2
3
const tab = listeMots.filter((mot) => mot.length < 6);

Équivalent avec forEach

1
const listeMots = ['bonjour', 'hello', 'matin', 'soir', 'journée', 'maintenant', 'après'];
2
3
const tab = [];
4
listeMots.forEach(function (mot) {
5
  if(mot.length < 6) tab.push(mot);
6
});

Équivalent avec for of

1
const listeMots = ['bonjour', 'hello', 'matin', 'soir', 'journée', 'maintenant', 'après'];
2
3
const tab = [];
4
for (let mot of listeMots) {
5
  if(mot.length < 6) tab.push(mot);
6
}

Équivalent avec for

1
const listeMots = ['bonjour', 'hello', 'matin', 'soir', 'journée', 'maintenant', 'après'];
2
3
const tab = [];
4
for (let i = 0; i < listeMots.length; i++) {
5
  if(listeMots[i].length < 6) tab[i] = listeMots[i];
6
}

ExempleGarde les mots commençant par "m"

See the Pen cours-js-array-filter-4 by BCMM-W2D (@bcmm-w2d) on CodePen.

Array : filter

Équivalent avec fonction fléchée

1
const listeMots = ['bonjour', 'hello', 'matin', 'soir', 'journée', 'maintenant', 'après'];
2
3
const tab = listeMots.filter((mot) => mot[0] == 'm');

Équivalent avec forEach

1
const listeMots = ['bonjour', 'hello', 'matin', 'soir', 'journée', 'maintenant', 'après'];
2
3
const tab = [];
4
listeMots.forEach(function (mot) {
5
  if(mot[0] == 'm') tab.push(mot);
6
});

Équivalent avec for of

1
const listeMots = ['bonjour', 'hello', 'matin', 'soir', 'journée', 'maintenant', 'après'];
2
3
const tab = [];
4
for (let mot of listeMots) {
5
  if(mot[0] == 'm') tab.push(mot);
6
}

Équivalent avec for

1
const listeMots = ['bonjour', 'hello', 'matin', 'soir', 'journée', 'maintenant', 'après'];
2
3
const tab = [];
4
for (let i = 0; i < listeMots.length; i++) {
5
  if(listeMots[i][0] == 'm') tab[i] = listeMots[i];
6
}

ExempleGarde les majeurs d'une liste de tableaux associatifs (objet)

See the Pen cours-js-array-filter-5 by BCMM-W2D (@bcmm-w2d) on CodePen.

Array : filter

Équivalent avec fonction fléchée

1
const listePersonnes = [
2
  {id : 8, nom : 'Aule', prenom : 'Lucie', age : 45},
3
  {id : 9, nom  : 'Ball', prenom : 'Annie', age : 24},
4
  {id : 10, nom : 'Bon', prenom : 'Jean', age : 65},
5
  {id : 11, nom : 'Braisile', prenom : 'France', age : 13}
6
];
7
8
const tab = listePersonnes.filter((personne) => personne.age >= 18);

Équivalent avec forEach

1
const listePersonnes = [
2
  {id : 8, nom : 'Aule', prenom : 'Lucie', age : 45},
3
  {id : 9, nom  : 'Ball', prenom : 'Annie', age : 24},
4
  {id : 10, nom : 'Bon', prenom : 'Jean', age : 65},
5
  {id : 11, nom : 'Braisile', prenom : 'France', age : 13}
6
];
7
8
const tab = [];
9
listePersonnes.forEach(function (personne) {
10
  if(personne.age >= 18) tab.push(personne);
11
});

Équivalent avec for of

1
const listePersonnes = [
2
  {id : 8, nom : 'Aule', prenom : 'Lucie', age : 45},
3
  {id : 9, nom  : 'Ball', prenom : 'Annie', age : 24},
4
  {id : 10, nom : 'Bon', prenom : 'Jean', age : 65},
5
  {id : 11, nom : 'Braisile', prenom : 'France', age : 13}
6
];
7
8
const tab = [];
9
for (let personne of listePersonnes) {
10
  if(personne.age >= 18) tab.push(personne);
11
}

Équivalent avec for

1
const listePersonnes = [
2
  {id : 8, nom : 'Aule', prenom : 'Lucie', age : 45},
3
  {id : 9, nom  : 'Ball', prenom : 'Annie', age : 24},
4
  {id : 10, nom : 'Bon', prenom : 'Jean', age : 65},
5
  {id : 11, nom : 'Braisile', prenom : 'France', age : 13}
6
];
7
8
const tab = [];
9
for (let i = 0; i < listePersonnes.length; i++) {
10
  if(listePersonnes[i].age >= 18) tab[i] = listePersonnes[i];
11
}