Filtrer un tableau en javascript

Prenons l’exemple d’un tableau contenant des renseignements sur des animaux :

var animaux = [
{nom: "Jeannot", espece: "lapin"},
{nom: "Rantanplan", espece: "chien"},
{nom: "Milou", espece: "chien"},
{nom: "Nemo", espece: "poisson"},
{nom: "Duchesse", espece: "chat"},
{nom: "Samy", espece: "poisson"}
];

Le problème : Extraire les renseignements contenus dans ce tableau mais uniquement pour les chiens.

Solution 1 : En utilisant la programmation impérative :

var chiens = [];
for (var i = 0; i < animaux.length; i += 1) {
if (animaux[i].espece === "chien") {
chiens.push(animaux[i]);
}
}
console.log(chiens);

// Résultat :
// [ { nom: 'Rantanplan', espece: 'chien' },
// { nom: 'Milou', espece: 'chien' } ]

Solution 2 : En utilisant la programmation fonctionnelle :

var estUnChien = function (animal) {
return animal.espece === "chien";
};
var chiens = animaux.filter(estUnChien);

console.log(chiens);

// Résultat :
// [ { nom: 'Rantanplan', espece: 'chien' },
// { nom: 'Milou', espece: 'chien' } ]

Et encore plus redoutable avec l’avènement de ECMAScript 2015 :

const animaux = [
{nom: "Jeannot", espece: "lapin"},
{nom: "Rantamplan", espece: "chien"},
{nom: "Milou", espece: "chien"},
{nom: "Nemo", espece: "poisson"},
{nom: "Duchesse", espece: "chat"},
{nom: "Samy", espece: "poisson"}
]

const estUnChien = animal => animal.espece === "chien"
const chiens = animaux.filter(estUnChien)

console.log(chiens)

// Résultat :
// [ { nom: 'Rantamplan', espece: 'chien' },
// { nom: 'Milou', espece: 'chien' } ]

 

 

 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.