Home > Web Front-end > JS Tutorial > body text

How do I modify array values within a forEach loop?

Mary-Kate Olsen
Release: 2024-11-11 06:50:02
Original
955 people have browsed it

How do I modify array values within a forEach loop?

Modifying Array Values with forEach

When iterating through an array with the forEach method, it's common to encounter situations where you want to modify the array's elements. However, attempting to assign new values directly within the callback doesn't always affect the original array.

Unexpected Behavior

Consider the following code:

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

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

alert(arr); // Output: "one,two,three"
Copy after login

Despite the assignment within the callback, the original array arr returns its original values. This happens because forEach creates a shallow copy of the array's elements for the callback function.

Granting Write Access

To modify an array's elements from a forEach iteration, we need to pass the original array as an additional parameter. This allows us to directly access and modify the array itself within the callback:

arr.forEach(function(part, index, theArray) {
  theArray[index] = "hello world";
});
Copy after login

By using theArray[index], we can overwrite the original array element.

Using this as an Alternative

Alternatively, we can use the second argument of forEach to set the this value within the callback. By setting this to the original array, we can use this[index] to modify the elements directly:

arr.forEach(function(part, index) {
  this[index] = "hello world";
}, arr); // Use arr as this
Copy after login

Choice of Method

Both approaches allow for modifying array elements during iteration. The choice between the two depends on preference.

Additional Array Utilities

It's worth mentioning that forEach is one of several array utilities provided by the Array prototype. Other commonly used utilities include:

  • filter: Creates a new array containing elements that meet a certain condition.
  • map: Creates a new array by transforming each element of the existing array.
  • some: Checks if at least one element in the array meets a certain condition.
  • every: Checks if all elements in the array meet a certain condition.
  • find: Returns the first element in the array that meets a certain condition.

The above is the detailed content of How do I modify array values within a forEach loop?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template