Maison > interface Web > js tutoriel > Comment modifier les éléments d'un tableau dans une boucle JavaScript « forEach » ?

Comment modifier les éléments d'un tableau dans une boucle JavaScript « forEach » ?

Mary-Kate Olsen
Libérer: 2024-11-08 18:06:02
original
823 Les gens l'ont consulté

How to Modify Array Elements Inside a JavaScript `forEach` Loop?

Modification des éléments d'un tableau lors d'une boucle forEach

En JavaScript, lors d'une itération sur un tableau à l'aide de la méthode forEach, il peut être frustrant de se rendre compte que les modifications apportées aux éléments individuels dans la boucle ne sont pas reflétées dans le tableau d'origine. En effet, forEach transmet une copie de l'élément à la fonction de rappel, et non une référence à l'élément réel.

Pour activer l'accès en écriture aux éléments du tableau à partir de la fonction d'itération, il existe deux options :

Option 1 : Fournir un tableau comme troisième argument

La méthode forEach prend un troisième argument facultatif, qui représente le tableau lui-même. En attribuant une nouvelle valeur à l'index correspondant du tableau dans le rappel, le tableau d'origine sera modifié.

arr.forEach(function(part, index, theArray) {
  theArray[index] = "hello world";
});
Copier après la connexion

Option 2 : utiliser une fonction fléchée avec lié à ceci

Une autre façon d'obtenir le comportement souhaité consiste à utiliser une fonction de flèche comme rappel et à fournir le tableau comme this contexte :

arr.forEach(function(part, index) {
  this[index] = "hello world";
}, arr); // use arr as this
Copier après la connexion

En configurant le tableau comme ceci dans le rappel, les modifications apportées à l'élément seront directement appliquées au tableau d'origine.

Considérations supplémentaires :

  • Les techniques ci-dessus ne fonctionnent pas si vous utilisez une fonction régulière (déclaration ou expression de fonction) comme rappel.
  • Si vous avez l'intention de modifier la longueur du tableau pendant la boucle, vous devez utiliser la boucle for traditionnelle au lieu de forEach pour éviter des conséquences inattendues.
  • Connaissance des autres méthodes d'itération du tableau (filtre , carte, etc.) est bénéfique pour choisir l'outil le plus approprié pour chaque tâche.

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:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal