Maison >interface Web >js tutoriel >Comment puis-je créer une fonction de carte pour des objets en JavaScript ?

Comment puis-je créer une fonction de carte pour des objets en JavaScript ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-18 07:46:13656parcourir

How Can I Create a Map Function for Objects in JavaScript?

Création d'une fonction de carte pour les objets en JavaScript (alternative à Array.map)

En JavaScript, Array.prototype.map() La méthode est largement utilisée pour parcourir des tableaux et appliquer une fonction spécifiée à chaque élément. Cependant, aucune méthode native similaire n’existe pour les objets. Cet article explore une solution à cette limitation en introduisant une fonction de cartographie personnalisée pour les objets.

Le problème :

Considérez un objet avec des paires clé-valeur :

myObject = {
  'a': 1,
  'b': 2,
  'c': 3
};

Le but est de créer un nouvel objet où chaque valeur est transformée par une fonction spécifiée. Par exemple, doublons les valeurs :

newObject = myObject.map(function(value, label) {
  return value * 2;
});

// newObject should now be { 'a': 2, 'b': 4, 'c': 6 }

La solution :

Bien que JavaScript ne dispose pas d'une fonction de cartographie native pour les objets, il existe une solution élégante utilisant l'objet. Méthodes key() et forEach() :

var myObject = {
  'a': 1,
  'b': 2,
  'c': 3
};

Object.keys(myObject).forEach(function(key, index) {
  myObject[key] *= 2;
});

console.log(myObject);
// Output: { 'a': 2, 'b': 4, 'c': 6 }

Dans ce code :

  • Object.keys(myObject) renvoie un tableau des noms de propriétés de l'objet.
  • La méthode forEach() parcourt ce tableau.
  • Pour chaque propriété, on accède à sa valeur à l'aide de myObject[key] et on applique la transformation (multiplication par 2) directement sur la propriété objet.

Cette approche modifie l'objet d'origine en place, ce qui peut ne pas être souhaitable dans certains scénarios. Pour créer un nouvel objet avec les valeurs transformées, clonez simplement l'objet d'origine avant d'appliquer la transformation.

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!

Déclaration:
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