Maison > interface Web > js tutoriel > le corps du texte

Méthodes de tableau JavaScript : `forEach`, `map`, `filter` et `reduce`

王林
Libérer: 2024-07-22 18:35:22
original
536 人浏览过

JavaScript Array Methods: `forEach`, `map`, `filter`, and `reduce`

Méthodes de tableau JavaScript : forEach, mapper, filtrer et réduire

JavaScript fournit plusieurs méthodes puissantes pour travailler avec des tableaux. Ces méthodes (forEach, map, filter et reduction) peuvent rendre votre code plus efficace et plus facile à lire. Explorons ces méthodes à l'aide d'analogies et d'exemples simples.

pour chaque

Analogie : Jouer avec chaque jouet dans la boîte

Imaginez que vous avez une boîte de jouets et que vous voulez jouer avec chaque jouet un par un. Vous sortez chaque jouet de la boîte, jouez avec, puis vous le remettez.

Exemple :

let toys = ['car', 'doll', 'ball'];

toys.forEach(toy => {
  console.log('Playing with', toy);
});
Copier après la connexion

Explication :
Vous regardez chaque jouet dans la boîte et jouez avec.

carte

Analogie : Transformer chaque jouet en quelque chose de nouveau

Supposons que vous ayez une boîte de jouets et que vous souhaitiez transformer chaque jouet en quelque chose d'autre. Par exemple, vous transformez chaque voiture en voiture de course, chaque poupée en super-héros et chaque ballon en ballon de basket.

Exemple :

let toys = ['car', 'doll', 'ball'];

let newToys = toys.map(toy => {
  return toy + ' (new version)';
});

console.log(newToys);
Copier après la connexion

Explication :
Vous transformez chaque jouet en une nouvelle version et mettez les nouveaux jouets dans une nouvelle boîte.

filtre

Analogie : Choisir uniquement certains jouets avec lesquels jouer

Vous avez une boîte de jouets, mais aujourd'hui vous voulez jouer uniquement avec les jouets rouges. Alors, vous regardez à travers la boîte et vous n'en sortez que les jouets rouges.

Exemple :

let toys = ['red car', 'blue doll', 'red ball'];

let redToys = toys.filter(toy => toy.includes('red'));

console.log(redToys);
Copier après la connexion

Explication :
Vous sélectionnez uniquement les jouets qui correspondent à une certaine condition (dans ce cas, être rouge).

réduire

Analogie : combiner tous les jouets en un seul méga-jouet

Imaginez que vous souhaitiez créer un gros jouet en combinant tous les jouets ensemble. Vous prenez chaque jouet et l'ajoutez au méga jouet un par un.

Exemple :

let toys = ['car', 'doll', 'ball'];

let megaToy = toys.reduce((combinedToys, toy) => {
  return combinedToys + ' ' + toy;
}, '');

console.log(megaToy);
Copier après la connexion

Explication :
Vous commencez avec un méga jouet vide et continuez à y ajouter chaque jouet jusqu'à ce que vous ayez un gros jouet.

Mettre tous ensemble

Disons que vous avez une boîte de différents jouets et que vous souhaitez :

  1. Regardez chaque jouet et voyez de quoi il s'agit (pourEach).
  2. Transformez chaque jouet en une nouvelle version (carte).
  3. Sélectionnez uniquement les jouets bleus (filtre).
  4. Combinez tous les jouets sélectionnés en un seul méga jouet (réduisez).
let toys = ['blue car', 'red doll', 'blue ball'];

toys.forEach(toy => {
  console.log('Toy:', toy);
});

let newToys = toys.map(toy => {
  return toy + ' (new version)';
});

let blueToys = newToys.filter(toy => toy.includes('blue'));

let megaToy = blueToys.reduce((combinedToys, toy) => {
  return combinedToys + ' ' + toy;
}, '');

console.log(megaToy);
Copier après la connexion

Explication :

  1. Regardez chaque jouet.
  2. Changez chaque jouet pour une nouvelle version.
  3. Choisissez uniquement les jouets bleus.
  4. Combinez-les en un seul gros jouet.

Options et techniques avancées

pour chaque

  • Sortie de forEach : Vous ne pouvez pas sortir d'une boucle forEach. Si vous avez besoin de cette fonctionnalité, pensez à utiliser une boucle for ou for...of.
  • Utilisation de thisArg : Vous pouvez fournir un thisArg à utiliser comme this dans le rappel.
  toys.forEach(function(toy) {
    console.log(this.prefix + toy);
  }, { prefix: 'Toy: ' });
Copier après la connexion

carte

  • Utilisation de thisArg : Semblable à forEach, vous pouvez fournir un thisArg à utiliser comme this dans le rappel.
  let newToys = toys.map(function(toy) {
    return this.prefix + toy;
  }, { prefix: 'New: ' });
Copier après la connexion
  • Renvoi de différents types : map peut renvoyer un tableau d'un type différent.
  let toyLengths = toys.map(toy => toy.length);
Copier après la connexion

filtre

  • Conditions complexes : Utilisez des conditions complexes pour le filtrage.
  let complexFilter = toys.filter(toy => toy.includes('blue') && toy.length > 4);
Copier après la connexion

réduire

  • Valeur initiale : Fournissez toujours une valeur initiale pour éviter des résultats inattendus.
  let sum = [1, 2, 3].reduce((total, num) => total + num, 0);
Copier après la connexion
  • Réduire en objet : Vous pouvez utiliser réduire pour créer des objets.
  let toyCounts = toys.reduce((counts, toy) => {
    counts[toy] = (counts[toy] || 0) + 1;
    return counts;
  }, {});
Copier après la connexion

En comprenant ces méthodes et leurs options avancées, vous pouvez écrire du code JavaScript plus efficace et plus lisible. Bon codage !

以上是Méthodes de tableau JavaScript : `forEach`, `map`, `filter` et `reduce`的详细内容。更多信息请关注PHP中文网其他相关文章!

source:dev.to
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!