Иногда нам может потребоваться заменить элемент в массиве 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