JavaScript 如何在foreach循环中更改数组的值

JavaScript 如何在foreach循环中更改数组的值

JavaScript中的forEach循环是迭代数组的几种方法之一。forEach方法与所有其他循环方法不同,它为数组中的每个元素传递一个回调函数。

因此,当使用forEach方法在JavaScript中更改数组的值时,该方法不会直接更改调用它的对象,但是该对象可能会被回调函数更改。换句话说,在每次迭代期间,您可以通过访问和分配新值来更改数组中的值。

语法:

array.forEach(function(element, index, arr), thisValue)

forEach方法会为数组的每个元素传递一个回调函数,同时传递以下参数:

  • function(element, index, arr): 用于对数组中的每个元素运行的函数。
    • element: 当前元素的值。必需参数。
    • index: 当前元素的索引。可选参数。
    • arr: 调用forEach()方法的数组。可选参数。
  • thisValue: 作为this值传递给函数的值。

方法: 如果数组包含基本数据类型:

示例: 在这个例子中,回调函数接收两个参数,元素和索引,其中元素指当前处理的元素,索引指当前的索引。foreach会为数组中的每个元素传递一个回调函数。通过索引访问当前元素,并直接在回调函数中修改其值,可以在循环数组时改变数组中的值。

Javascript

let arr = [1, 2, 3]; 
arr.forEach((element, index) => {  
    arr[index] = element + 10;  
}); 
console.log(arr);

回调函数将当前元素(即 element)加上10,然后将加法结果设置为数组中当前元素的值。

输出:

[ 11, 12, 13 ]

如果数组包含引用数据类型:

1)改变整个对象: 如果数组包含引用数据类型,我们需要进行一些修改。然而,逻辑仍然相同,我们将通过索引访问当前元素,并直接在回调函数中修改其值。

示例: 在这个例子中,回调函数接受当前元素和索引。我们现在将数组中当前元素的值设置为具有名称为GFG和年龄为4的新对象。

Javascript

let arr = [ 
      {"name": "Geeks", "roll": 1}, 
      {"name": "For", "roll": 2}, 
      {"name": "Geeks", "roll": 3} 
]; 
  
arr.forEach((element, index) => {  
    arr[index] = {"name": "GFG", "age": 4};  
}); 
  
console.log(arr);

输出:

[
     { name: 'GFG', age: 4 },
     { name: 'GFG', age: 4 },
     { name: 'GFG', age: 4 }
]

2) 仅更改对象中的一个键: 在这个例子中,我们做的和上面的例子一样,但是在这个例子中,我们只是更改了对象中的一个键(即name),而不是在迭代过程中更改整个对象。在这里,我们将键的值(即name)更改为GFG。

示例:

JavaScript

let arr = [ 
    {"name": "Geeks", "roll": 1}, 
    {"name": "For", "roll": 2}, 
    {"name": "Geeks", "roll": 3} 
]; 
  
arr.forEach(function(item, index) {  
    arr[index].name = "GFG";  
}); 
  
console.log(arr);

输出:

[
     { name: 'GFG', roll: 1 },
     { name: 'GFG', roll: 2 },
     { name: 'GFG', roll: 3 }
]

通过这种方式,我们可以在JavaScript的foreach循环中修改数组中的值。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程