Каждый элемент этого массива является некоторым числом.
var items = Array(523,3452,334,31, ...5346);
Как заменить некоторое число в массиве новым?
Например, мы хотим заменить 3452 на 1010, как бы мы это сделали?
javascript
arrays
Джеймс
источник
источник
replace
метода для массивов?Ответы:
Также рекомендуется не использовать метод конструктора для инициализации ваших массивов. Вместо этого используйте буквальный синтаксис:
Вы также можете использовать
~
оператор, если вы в лаконичном JavaScript и хотите сократить-1
сравнение:Иногда мне даже нравится писать
contains
функцию для абстрагирования этой проверки и облегчения понимания того, что происходит. Что удивительно, так это то, что он работает с массивами и строками:Начиная с ES6 / ES2015 для строк и предлагая ES2016 для массивов, вы можете легче определить, содержит ли источник другое значение:
источник
contains
:var contains = (a, b) => !!~a.indexOf(b)
: PArray.prototype.includes
вместо этого.in
чтобы увидеть, есть ли у объекта ключ (например,'property' in obj
), или вы также можете перебирать значения объекта с помощьюObject.values(obj).forEach(value => {})
.Array.indexOf()
Метод заменяет первый экземпляр. Чтобы получить каждый экземпляр, используйтеArray.map()
:Конечно, это создает новый массив. Если вы хотите сделать это на месте, используйте
Array.forEach()
:источник
Array.indexOf()
был введен одновременно сmap()
иforEach()
. Если вы поддерживаете IE8 или более раннюю версию и не используете шим для добавления поддержки, лучше ответьте на вопрос mellamokb .Мое предлагаемое решение будет:
Операция сращивания удалит 1 элемент, начиная с позиции 1 в массиве (т.е.
3452
), и заменит его новым элементом1010
.источник
1
элемент будет удален, тогда как на самом деле первый параметр означает, что операция выполняется с индексом1
. developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…Используйте indexOf, чтобы найти элемент.
источник
Легко достигается с помощью
for
петли.источник
Вы можете редактировать любой номер списка, используя индексы
например :
источник
Если вы используете сложный объект (или даже простой), и вы можете использовать es6,
Array.prototype.findIndex
это хороший. Для массива OP, они могли бы сделать,Для более сложных объектов это действительно светит. Например,
источник
Замена может быть выполнена в одну строку:
Или создайте функцию для повторного использования:
источник
ES6 способ:
Мы хотим заменить
3452
с1010
, решением:Конечно, вопрос стоит много лет назад, а пока я просто предпочитаю использовать неизменное решение, безусловно, это круто
ReactJS
.Для частого использования я предлагаю ниже функцию:
источник
Первый способ
Лучший способ в одну строку заменить или обновить элемент массива
Например:
Второй метод
Другой простой способ сделать ту же операцию:
источник
Самый простой способ - использовать некоторые библиотеки, такие как underscorejs и map method.
источник
replace
сейчас ..._.replace([1, 2, 3], 2, 3);
Неизменный способ замены элемента в списке с использованием операторов и
.slice
метода распространения ES6 .Убедитесь, что работает
источник
Если вы знаете значение, используйте
Если вы хотите знать, присутствует это значение или нет, используйте:
Если вы знаете место (положение), то непосредственно используйте,
Если вы хотите заменить несколько элементов, и вы знаете, только означает только начальная позиция,
для больше о .splice
источник
отсюда вы можете удалить определенное значение из массива и на основе того же индекса вы можете вставить значение в массив.
источник
Хорошо, если кто-то интересуется, как заменить объект из его индекса в массиве, вот решение.
Найдите индекс объекта по его идентификатору:
Замените объект с помощью метода Object.assign ():
источник
Ответ от @ gilly3 отличный.
Как расширить это для массива объектов
Я предпочитаю следующий способ обновления новой обновленной записи в моем массиве записей при получении данных с сервера. Это сохраняет порядок в целости и сохранности.
users = users.map(u => u.id !== editedUser.id ? u : editedUser);
источник
Во-первых, перепишите ваш массив следующим образом:
Затем получите доступ к элементу в массиве через его порядковый номер. Формула для определения номера индекса:
n-1
Чтобы заменить первый элемент
(n=1)
в массиве, напишите:В вашем примере номер
3452
находится на второй позиции(n=2)
. Так что формула для определения номера индекса есть2-1 = 1
. Поэтому напишите следующий код для замены3452
на1010
:источник
Вот основной ответ, превращенный в функцию многократного использования:
источник
Я решил эту проблему, используя циклы for и итерируя по исходному массиву и добавляя позиции совпадающих массивов в другой массив, а затем циклически перебирая этот массив и изменяя его в исходном массиве, затем возвращая его, я использовал и функцию стрелки, но обычную функцию будет работать тоже.
источник
источник
Самый простой способ это.
источник
replaceWhat = 523, replaceWith = 999999
, не дает правильных результатовВот один лайнер. Предполагается, что элемент будет в массиве.
источник
Если вы хотите простой сахарный синтаксис, вы можете просто:
Подобно:
Если у вас нет идентификатора, вы можете привести строку в строчку:
источник