Maison > interface Web > js tutoriel > Comment utiliser à la fois la carte et le filtre sur un tableau à l'aide de JavaScript ?

Comment utiliser à la fois la carte et le filtre sur un tableau à l'aide de JavaScript ?

PHPz
Libérer: 2023-08-28 20:29:05
avant
901 Les gens l'ont consulté

La méthode

如何使用 JavaScript 在数组上同时使用映射和过滤器?

filter() est utilisée pour filtrer les valeurs du tableau et la méthode map() est utilisée pour mapper les nouvelles valeurs à un autre tableau en fonction de chaque valeur de l'ancien tableau.

Parfois, nous devons utiliser les méthodes filter() et map() en même temps. Par exemple, nous voulons filtrer tous les nombres positifs d'un tableau et mapper leurs valeurs logarithmiques sur un nouveau tableau

Avant de commencer ce tutoriel, jetons un coup d'œil à l'introduction des méthodes filter() et map(). Dans ce didacticiel, nous apprendrons à utiliser les méthodes de mappage et de filtrage sur les tableaux à l'aide de JavaScript.

Syntaxe de la méthode array.filter()

Les utilisateurs peuvent utiliser la méthode JavaScript filter() selon la syntaxe suivante.

array.filter((element, index, self) => {
   // write a condition to filter values.
   
   // based on the filtering condition, return a boolean value to include in the filtered array.
})
Copier après la connexion

Dans la syntaxe ci-dessus, nous passons la fonction de rappel comme paramètre de la méthode filter().

Syntaxe de la méthode array.map()

Les utilisateurs peuvent utiliser la méthode JavaScript map() selon la syntaxe suivante.

array.map((element, index, self) => {
   // perform some action on the element of the array
   
   // return element for a new array
})
Copier après la connexion

Dans la syntaxe ci-dessus, nous devons renvoyer les éléments du tableau à partir de la fonction de rappel de la méthode map().

Paramètres

  • element – Lors d'une itération sur un tableau à l'aide de la méthode filter(), il s'agit de l'élément actuel du tableau.

  • index – C'est l'index de l'élément dans le tableau.

  • self – C'est un tableau en soi.

Utilisez les méthodes array.map() et array.filter()

Cette section nous apprendra à utiliser les méthodes filter() et map() ensemble sur un seul tableau.

Grammaire

Les utilisateurs peuvent utiliser les méthodes map() et filter() ensemble selon la syntaxe suivante.

let logarithmic_values = array.filter((element, index, self) => {
   
   // filtering condition
})
.map((element, index, self) => {
   // return value from map method
})
Copier après la connexion

Dans la syntaxe ci-dessus, nous avons d'abord utilisé la méthode filter() sur le tableau, puis la méthode map().

Exemple 1

Dans l'exemple ci-dessous, le tableau contient des nombres positifs et négatifs. Nous prenons le tableau comme référence et appelons la méthode filter() sur le tableau pour filtrer toutes les valeurs positives du tableau. Dans la fonction de rappel de la méthode filter(), on renvoie true si le nombre est supérieur à zéro sinon une erreur ;

Après cela, nous utilisons la méthode map() et renvoyons le logarithme de chaque élément filtré. L'utilisateur peut voir que le tableau logarithmic_values ​​​​contient seulement six valeurs car nous avons supprimé toutes les valeurs négatives du tableau filtré.

<html>
<body>
   <h3>Using the <i> array.map() and array.filter() </i> methods together in JavaScript</h3>
   <div id = "output"> </div>
   <script>
      let output = document.getElementById('output');
      let array = [10, 20, -2, -4, 32, -6, -7, -8, 10, 11, -20]
      let logarithmic_values = array.filter((element, index, self) => {
         if (element > 0) {
            return true;
         }
         return false;
      })
      .map((element, index, self) => {
         return Math.log(element);
      })
      output.innerHTML += "The original array values are " + array + "<br/>";
      output.innerHTML += "The logarithmic_values are " + logarithmic_values + "<br/>";
   </script>
</body>
</html>
Copier après la connexion

Exemple 2

Dans l'exemple ci-dessous, nous créons un tableau d'objets, chaque objet du tableau contient l'ID de l'employé, les années de service et le salaire.

Après cela, nous utilisons la méthode filter() pour filtrer tous les employés ayant plus de 3 ans d'expérience. Ensuite, nous utilisons la méthode map() pour augmenter les salaires de tous les employés de 50 % et stockons les nouveaux salaires dans le tableau new_salaries.

Dans la sortie, les utilisateurs peuvent initialement observer le salaire total après l'augmentation.

<html>
<body>
   <h2>Using the <i> array.map() and array.filter() </i> methods together in JavaScript </h2>
   <div id = "output"> </div>
   <script>
      let output = document.getElementById('output');
      
      // Creating the array of objects
      let array = [{ emp_id: "01", experience: 3, salary: 50000 },
      { emp_id: "02", experience: 7, salary: 30000 },
      { emp_id: "03", experience: 6, salary: 20000 },
      { emp_id: "04", experience: 5, salary: 10000 },
      { emp_id: "05", experience: 3, salary: 5000 },
      { emp_id: "06", experience: 2, salary: 40000 },
      { emp_id: "07", experience: 1.5, salary: 60000 },
      { emp_id: "08", experience: 2, salary: 70000 }]
      
      // use the forEach() loop method to find the total initial salary
      let total_initial_salary = 0;
      array.forEach((employee) => {
         total_initial_salary += employee.salary;
      })
      
      // filter all employees with experience greater than 3 years.
      let new_salaries = array.filter((element) => {
         if (element.experience > 3) {
            return true;
         }
         return false;
      })
      .map((element) => {
         
         // increase the salary of all employees by 50%, who have experienced greater than 3 years
         return element.salary * 0.5;
      })
      
      // find the sum of new salaries
      let new_salary = total_initial_salary;
      let total_increased_salary = new_salaries.forEach((salary) => {
         new_salary += salary
      })
      output.innerHTML += "The initial total salaries of all employees is " + total_initial_salary + "<br/>";
      output.innerHTML += "The total salaries of all employees after increasing salaries for some employees is " + new_salary + "<br/>";
   </script>
</body>
</html>
Copier après la connexion

Les utilisateurs ont appris à utiliser les méthodes filter() et map() ensemble à travers divers exemples. Dans le premier exemple, nous utilisons les méthodes filter() et map() avec un tableau de nombres. Dans le deuxième exemple, nous avons également appris à utiliser les méthodes filter() et map() avec un tableau d’objets.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal