Maison >interface Web >js tutoriel >Pouvez-vous modifier les éléments du tableau en JavaScript pendant l'itération ?

Pouvez-vous modifier les éléments du tableau en JavaScript pendant l'itération ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-09 11:06:02185parcourir

Can You Modify Array Elements in JavaScript During Iteration?

Éléments de tableau mutables pendant l'itération

En JavaScript, les tableaux sont immuables, ce qui signifie que leurs éléments ne peuvent pas être directement modifiés dans les itérations de boucle.

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

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

alert(arr);

Cependant, ce code affichera toujours ["one", "two", "trois"] car part est une variable locale dans la fonction de rappel qui ne modifie pas directement le array.

Modification du tableau avec Index et this

Pour modifier les éléments du tableau lors de l'itération, accédez-y à l'aide de l'index de l'élément ou de l'objet this :

// Using index
arr.forEach(function(part, index, theArray) {
  theArray[index] = "hello world";
});

// Using 'this'
arr.forEach(function(part, index) {
  this[index] = "hello world";
}, arr);

Dans le deuxième exemple, arr est spécifié comme valeur this de la fonction de rappel. Ainsi, this[index] fait référence à l'élément du tableau.

Fonctions alternatives de manipulation de tableaux

Au lieu de forEach, envisagez d'utiliser d'autres fonctions qui modifient les tableaux de manière plus directe :

  • filtre : Créez un nouveau tableau avec des éléments qui répondent à un condition.
  • map : Créez un nouveau tableau en transformant chaque élément d'un tableau existant.
  • reduce : Combinez des éléments en une seule valeur.

Ces fonctions fournissent des mécanismes efficaces pour manipuler des tableaux sans avoir besoin de modifier directement les éléments pendant l'itération.

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