Bonjour,
Code : S�lectionner tout - Visualiser dans une fen�tre � part
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
26
27
28
29
30
function whatIsInAName(collection, source) {
 
  var srcKeys = Object.keys(source);
console.log(srcKeys)
  // filter the collection
  return collection.filter(function(obj) {
    let w = srcKeys
      .map(function(key) {
        return obj.hasOwnProperty(key) && obj[key] === source[key];
      });
console.log(w)
      let x = w.reduce(function(a, b) {
        return a && b;
      });
      /*let x = w.toString();*/   
      console.log(x)
      return x
  });
}
 
 
let result = whatIsInAName(
  [
    { first: "Romeo", last: "Montague" },
    { first: "Mercutio", last: null },
    { first: "Tybalt", last: "Capulet" }
  ], 
    { last: "Capulet" }
  );
  console.log(result)
Ci-dessus un petit code que je comprends pas.
J'ai ajout� des variables pour voir ce que le code fait �tape par �tape.
Apparemment, ce que la m�thode reduce() voit en entr�e est un tableau [true] ou [false] et sa sortie est "true" ou "false".
Le code fonctionne avec les variables, donc ce n'est pas un probl�me.

Je ne comprends pas l'utilisation de map() et reduce() ici.
Pour moi, map() doit transformer un tableau, alors que l� on lui passe une condition et reduce() devrait r�duire un tableau � une valeur alors que l� j'ai l'impression qu'elle ne fait que transformer, par exemple, [true] en 'true'...
Je n'arrive pas � comprendre ce qu'il se passe exactement.
J'ai essay� de remplacer reduce() par :
Mais le code ne fonctionne plus, donc pour finir je pense que je ne comprends rien du tout.

Quelqu'un pour m'aider ?