Problème de tableaux

Le problème exposé dans ce sujet a été résolu.

Bonjour, j'ai un petit soucis avec des tableaux en JS. Je souhaite faire une manipulation légèrement complexe sur deux tableaux, et même en réfléchissant je n'est pas la moindre idée de comment la résoudre. Voilà le code (il ne représente pas mon code réel, j'ai mis en scène le problème pour le rendre plus compréhensible):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
var fruitsDansLePanier = [
{
fruit: pomme,
couleur: rouge
},
{
fruit: fraise,
couleur: rouge
},
{
fruit: banane,
couleur: jaune
},
{
fruit: ananas,
couleur: jaune
}
];

var fruitsMangés = [
{
fruit: pomme,
couleur: rouge
}
];

Comment récupérer l'objet du premier fruit rouge du tableau fruitsDansLePanier qui n'a pas encore été mangé (qui n'est pas dans le tableau fruitsMangés ?? Merci d'avance, dites moi ci ce n'est pas clair. :)

P-S j'ai fais quelques recherches, ces fonctions sembles pouvoir aider:

https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/indexOf

https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/find

https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/slice

Après, je ne sais pas lesquelles ni comment les utiliser....

+0 -0

Je te propose de faire ça en deux étapes :

Une première étape avec la méthode filter (voir ici) pour trier ton premier tableau pour en avoir uniquement les fruits rouges.

Puis tu fait un find sur ce nouveau tableau, en comparant le fruit courant avec les fruits mangés. Si le fruit courant est dans le tableau des fruits mangés tu renvois false, et sinon true.

+0 -0

Hello,

Si tu veux simplement récupérer le premier fuit qui n'est pas une "pomme".

1
2
3
4
5
6
7
function myFilter(element) {
  return element.fruit !== fruitsManges[0].fruit;
}

var firstFruitPasManges = fruitsDansLePanier.filter(myFilter)[0];

console.log(firstFruitPasManges); // Object { fruit: "fraise", couleur: "rouge" }

Ou si tu veux récupérer le premier fruit qui n'est pas une "pomme" mais qui est "rouge".

1
2
3
4
5
6
7
function myFilter(element) {
  return element.fruit !== fruitsManges[0].fruit && element.couleur === fruitsManges[0].couleur;
}

var firstFruitPasManges = fruitsDansLePanier.filter(myFilter)[0];

console.log(firstFruitPasManges); // Object { fruit: "fraise", couleur: "rouge" }
+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte