Иногда нам может потребоваться заменить элемент в массиве JavaScript.

В этой статье мы рассмотрим, как заменить элемент в массиве JavaScript.

Array.prototype.indexOf и присвоение

Мы можем использовать метод indexOf массива JavaScript, чтобы найти индекс заданного значения в массиве.

Затем мы можем использовать индекс, чтобы присвоить этому индексу новое значение.

Например, мы можем написать:

const arr = [523, 353, 334, 31, 412];
const index = arr.indexOf(353);
if (index !== -1) {
  arr[index] = 1010;
}
console.log(arr)

Мы вызываем arr.indexOf с искомым значением.

Он вернет индекс первого экземпляра значения, если он существует, или -1 в противном случае.

Итак, если index не равно -1, то мы можем заменить значение по данному индексу новым, присвоив его, как мы это делали в блоке if.

Итак, arr сейчас:

[523, 1010, 334, 31, 412]

Array.prototype.map

Мы можем использовать метод map для возврата нового массива с записями существующего массива, сопоставленными с новыми значениями.

Чтобы использовать это для замены одного или нескольких экземпляров значения, мы можем написать:

const arr = [523, 353, 334, 31, 412];
const mapped = arr.map(a => a == 353 ? 1010 : a)
console.log(mapped)

Мы вызываем map с помощью обратного вызова, который проверяет, является ли значение a, которое проходит итерацию, равным 353.

Если это так, мы заменяем это на 1010.

В противном случае мы просто возвращаем существующее значение.

Итак, mapped сейчас:

[523, 1010, 334, 31, 412]

Array.prototype.indexOf и Array.prototype.splice

Мы также можем использовать метод splice массива JavaScript для замены значения по данному индексу новым.

Например, мы можем написать:

const arr = [523, 353, 334, 31, 412];
const index = arr.indexOf(353);
if (index !== -1) {
  arr.splice(index, 1, 1010);
}
console.log(arr)

Таким же образом получаем индекс 353.

Но вместо присвоения значения мы вызываем splice с index элемента, который нужно удалить.

1 во втором аргументе означает, что мы удаляем 1 элемент.

И третий аргумент - это значение, на которое мы заменяем элемент.

Итак, arr то же самое, что и в первом примере.

Заключение

Мы можем использовать методы массива для замены объекта по данному индексу другим значением.

Больше контента на plainenglish.io