-3
votes

nom des paramètres dans la méthode JavaScript filter ()

Ok, cela me dérange depuis un moment maintenant, donc toute aide serait grandement appréciée!

Question filtre:

Prenez le tableau suivant:

const retailCompanies = companies.filter(company => company.catagory === 'Retail');

Quand j'ai vu une fonction filter() répertoriée comme:

const companies = [{name: "Company One", catagory: "Finance"}, {name: "Company Two", catagory: "Retail"}, {name: "Company Three", catagory:"Auto Shop"}];

cela m'a fait demander pourquoi company.catagory et non companies.catagory comme le suggère le texte du tableau parent? Cela peut sembler trivial, mais j'ai juste besoin de savoir où cela a changé et comment le code lit cela.

Te remercie!


3 commentaires

companies - le tableau qui contient toutes les entreprises company - un élément du tableau. Puisque, la fonction sera appelée contre chaque membre, elle les couvrirait tous.


Je vous suggère de changer le titre de votre question, ce n'est pas une fonction d'ordre supérieur.


considérez ce titre changé, merci


3 Réponses :


0
votes

company est l'argument de rappel qui contient l'élément actuel, vous pouvez le nommer comme vous voulez, la plupart du temps, vous verrez les gens le nommer juste el ou ils le détruisent comme ceci:

const retailCompanies = companies.filter(({ catagory }) => catagory === 'Retail');

company détient l'élément actuel de la boucle, il ressemble à ceci:

{name: "Company One", catagory: "Finance"}

Et vous voulez comparer la catagory propriété avec 'Retail' de sorte que vous devez écrire

company.catagory === 'Retail'


0 commentaires

0
votes

Je ne pense pas que ce soit une fonction d'ordre supérieur, c'est une méthode intégrée de tableau.

La syntaxe du filtre est:

let newArray = arr.filter(callback(element[, index, [array]])[, thisArg])

Dans votre exemple, l' company est l' element de la syntaxe ci-dessus. Le filtre exécutera la fonction de rappel pour chacun des éléments du tableau donné jusqu'à la fin.

Source: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter


0 commentaires

0
votes

La fonction de filtrage reçoit un rappel qui est ensuite appelé dans une boucle en passant les valeurs individuelles du tableau.

Ainsi, chaque fois que votre rappel est exécuté, vous recevez un objet du tableau de votre entreprise comme {name: "Company One", catagory: "Finance"} dans la première itération, {name: "Company Two", catagory: "Retail"} dans la seconde itération et ainsi de suite.

Depuis que vous avez appelé votre company objet company vous utilisez company.category pour accéder au champ de catégorie dans cet objet. Vous pouvez choisir de nommer l'argument de la fonction de rappel n'importe quoi, par exemple, item

Array.prototype.filter = function(callback) {
   const arr = this;
   const res = [];
   for(let i = 0; i < arr.length; i++) {
      if(callback(arr[i], i)) { // call the callback function with the ith item
         res.push(arr[i]);
      }
   }
   return res;

}

Vous pouvez penser à une fonction de filtre implémentée comme

const retailCompanies = companies.filter(item => item.catagory === 'Retail');


0 commentaires