在 JavaScript 中替换数组中的元素

要替换数组中的元素:

  1. 使用 indexOf() 方法获取元素的索引。
  2. 使用括号表示法更改特定索引处元素的值。
  3. 数组元素的值将就地更新。
const arr = ['a', 'b', 'c'];

const index = arr.indexOf('a'); // 👉️  0

if (index !== -1) {
  arr[index] = 'z';
}

console.log(arr); // 👉️ ['z', 'b', 'c']

我们使用 Array.indexOf() 方法来获取值为 a 的数组元素的索引。

然后我们用新值替换了该索引处的元素。

或者,我们可以使用 array.splice() 方法。


使用 Array.splice() 替换数组中的元素

要替换数组中的元素:

  1. 使用 indexOf() 方法获取要替换的元素的索引。
  2. 调用 Array.splice() 方法替换特定索引处的元素。
  3. 数组元素将被替换到位。
const arr = ['a', 'b', 'c'];

const index = arr.indexOf('a'); // 👉️  0

arr.splice(index, 1, 'z');

console.log(arr); // 👉️ [ 'z', 'b', 'c' ]

我们将以下 3 个参数传递给 Array.splice() 方法:

  • start index – 开始更改数组的索引。
  • delete count – 应该从数组中删除多少元素。
  • item1 – 要添加到数组的项目。

我们将 start 索引设置为要替换的数组元素的索引。

在实践中,我们删除指定索引处的数组元素,然后在同一索引处插入不同的值,因此我们最终替换了数组元素。

另一种方法是使用基本的 for 循环。 **

使用 for 循环替换数组中的元素

要替换数组中的元素:

  1. 使用 for 循环迭代 array.length 次。
  2. 在每次迭代中,检查数组元素是否是要替换的元素。
  3. 如果满足条件,则替换索引处的元素并跳出 for 循环。
const arr = ['a', 'b', 'c'];

for (let index = 0; index < arr.length; index++) {
  if (arr[index] === 'a') {
    arr[index] = 'z';
    break;
  }
}

console.log(arr); // 👉️ ['z', 'b', 'c']

我们使用了一个基本的 for 循环来遍历数组。 在每次迭代中,我们检查元素是否是我们想要替换的元素。

一旦我们找到并替换了元素,我们就会跳出循环以避免不必要的工作。

另一种解决方案是不更改原始数组,而是创建一个包含所需值的新数组。 为此,我们可以使用 map() 方法。


使用 map() 替换数组中的元素

要替换数组中的元素:

  1. 使用 map() 方法遍历数组。
  2. 检查当前元素的值是否是要替换的元素。
  3. 如果满足条件,则返回替换值,否则返回原值。
const arr = ['a', 'b', 'c'];

const newArr = arr.map(element => {
  if (element === 'a') {
    return 'z';
  }
  return element;
});

console.log(newArr); // 👉️ ['z', 'b', 'c']

console.log(arr) // 👉️ ['a', 'b', 'c']

我们传递给 Array.map() 方法的函数被数组的每个元素调用。

在示例中,我们将所有数组元素替换为 a 的值,并将它们设置为 z 值。