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

Créer votre propre carte, filtrer et réduire en JavaScript

王林
Libérer: 2024-07-24 12:24:52
original
857 Les gens l'ont consulté

Building Your Own Map, Filter, and Reduce in JavaScript

Dans cet article, nous approfondissons le fonctionnement interne de ces centrales JavaScript. Nous ne nous contenterons pas de les utiliser ; nous allons les déconstruire et les reconstruire, en créant nos propres méthodes de carte, de filtrage et de réduction personnalisées à l'aide de Array.prototype. En disséquant ces fonctions, vous obtiendrez des informations inestimables sur leurs opérations, vous permettant ainsi d'exploiter efficacement les capacités de manipulation de tableaux de JavaScript.

Méthode de carte personnalisée :

La méthode map en JavaScript joue un rôle déterminant dans la transformation des tableaux en appliquant une fonction à chaque élément. Créons une méthode de cartographie personnalisée en utilisant Array.prototype :

// Custom map method for arrays
Array.prototype.customMap = function(callback) {
  const result = [];

  for (let i = 0; i < this.length; i++) {
    result.push(callback(this[i], i, this));
  }

  return result;
};

// Example usage:
const numbers = [1, 2, 3, 4, 5];
const doubledNumbers = numbers.customMap((num) => num * 2);
console.log(doubledNumbers); // [2, 4, 6, 8, 10]
Copier après la connexion

Dans cette méthode de carte personnalisée, nous parcourons chaque élément du tableau d'entrée, appliquons la fonction de rappel fournie à chaque élément et poussons le résultat dans un nouveau tableau, qui est ensuite renvoyé.

Méthode de filtre personnalisé :

La méthode filter permet de créer un nouveau tableau contenant des éléments qui satisfont une condition spécifique. Créons une méthode de filtre personnalisée à l'aide de Array.prototype :

// Custom filter method for arrays
Array.prototype.customFilter = function(callback) {
  const result = [];

  for (let i = 0; i < this.length; i++) {
    if (callback(this[i], i, this)) {
      result.push(this[i]);
    }
  }

  return result;
};

// Example usage:
const numbers = [1, 2, 3, 4, 5];
const evenNumbers = numbers.customFilter((num) => num % 2 === 0);
console.log(evenNumbers); // [2, 4]
Copier après la connexion

Dans cette méthode de filtre personnalisée, nous parcourons chaque élément du tableau d'entrée, appliquons la fonction de rappel fournie à chaque élément, et si le rappel renvoie vrai, nous ajoutons l'élément au tableau de résultats, qui est ensuite renvoyé.

Méthode de réduction personnalisée :

Créer une méthode de réduction personnalisée implique de gérer une valeur initiale. Créons une méthode de réduction personnalisée en utilisant Array.prototype :

// Custom reduce method for arrays
Array.prototype.customReduce = function(callback, initialValue) {
  let accumulator = initialValue === undefined ? this[0] : initialValue;
  const startIndex = initialValue === undefined ? 1 : 0;

  for (let i = startIndex; i < this.length; i++) {
    accumulator = callback(accumulator, this[i], i, this);
  }

  return accumulator;
};

// Example usage:
const numbers = [1, 2, 3, 4, 5];
const sum = numbers.customReduce((accumulator, current) => accumulator + current, 0);
console.log(sum); // 15
Copier après la connexion

Maintenant, nous avons une méthode customReduce qui peut être utilisée sur n'importe quel tableau. Dans cette méthode de réduction personnalisée, nous parcourons le tableau, en commençant soit par la valeur initiale fournie, soit par le premier élément si aucune valeur initiale n'est fournie. Nous appliquons la fonction de rappel à chaque élément, mettant à jour la valeur de l'accumulateur à chaque étape, et renvoyons enfin le résultat accumulé.

Conclusion :

Comprendre le fonctionnement interne des méthodes de tableau JavaScript telles que mapper, filtrer et réduire est essentiel pour un développement JavaScript compétent. En créant des versions personnalisées de ces méthodes à l'aide de Array.prototype, nous avons acquis un aperçu de leurs principes sous-jacents. Ces méthodes personnalisées facilitent non seulement la compréhension conceptuelle, mais soulignent également la polyvalence et la puissance de JavaScript en tant que langage de programmation.

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: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!