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

Comment modifier les valeurs d'un tableau dans une boucle forEach ?

Mary-Kate Olsen
Libérer: 2024-11-11 06:50:02
original
952 Les gens l'ont consulté

How do I modify array values within a forEach loop?

Modification des valeurs d'un tableau avec forEach

Lors d'une itération dans un tableau avec la méthode forEach, il est courant de rencontrer des situations dans lesquelles vous souhaitez modifier les éléments du tableau. Cependant, tenter d'attribuer de nouvelles valeurs directement dans le rappel n'affecte pas toujours le tableau d'origine.

Comportement inattendu

Considérez le code suivant :

var arr = ["one", "two", "three"];

arr.forEach(function(part) {
  part = "four";
  return "four";
})

alert(arr); // Output: "one,two,three"
Copier après la connexion

Malgré le affectation dans le rappel, le tableau d'origine arr renvoie ses valeurs d'origine. Cela se produit car forEach crée une copie superficielle des éléments du tableau pour la fonction de rappel.

Accorder l'accès en écriture

Pour modifier les éléments d'un tableau à partir d'une itération forEach, nous devons transmettre le tableau d'origine comme un paramètre supplémentaire. Cela nous permet d'accéder et de modifier directement le tableau lui-même dans le rappel :

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

En utilisant theArray[index], nous pouvons écraser l'élément du tableau d'origine.

Utiliser ceci comme alternative

Alternativement, nous pouvons utiliser le deuxième argument de forEach pour définir la valeur this dans le rappel. En définissant ceci sur le tableau d'origine, nous pouvons utiliser this[index] pour modifier les éléments directement :

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

Choix de la méthode

Les deux approches permettent de modifier les éléments du tableau pendant l'itération. Le choix entre les deux dépend des préférences.

Utilitaires de tableau supplémentaires

Il convient de mentionner que forEach est l'un des nombreux utilitaires de tableau fournis par le prototype Array. D'autres utilitaires couramment utilisés incluent :

  • filter : crée un nouveau tableau contenant des éléments qui remplissent une certaine condition.
  • map : crée un nouveau tableau en transformant chaque élément du tableau existant.
  • some : vérifie si au moins un élément du tableau remplit une certaine condition.
  • every : vérifie si tous les éléments du tableau remplissent une certaine condition.
  • find : renvoie le premier élément du tableau qui remplit une certaine condition.

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