Каждый элемент этого массива - это некоторое число.
var items = Array(523,3452,334,31, ...5346);
Как заменить некоторое число с помощью массива на новый?
Например, мы хотим заменить 3452 на 1010, как мы это сделаем?
Каждый элемент этого массива - это некоторое число.
var items = Array(523,3452,334,31, ...5346);
Как заменить некоторое число с помощью массива на новый?
Например, мы хотим заменить 3452 на 1010, как мы это сделаем?
var index = items.indexOf(3452);
if (index !== -1) {
    items[index] = 1010;
}
Также рекомендуется не использовать метод конструктора для инициализации ваших массивов. Вместо этого используйте буквенный синтаксис:
var items = [523, 3452, 334, 31, 5346];
Вы также можете использовать оператор ~, если вы используете краткий JavaScript и хотите сократить сравнение -1:
var index = items.indexOf(3452);
if (~index) {
    items[index] = 1010;
}
Иногда мне даже нравится писать функцию contains, чтобы отвлечь эту проверку и упростить понимание того, что происходит. Что удивительно, это работает с массивами и строками:
var contains = function (haystack, needle) {
    return !!~haystack.indexOf(needle);
};
// can be used like so now:
if (contains(items, 3452)) {
    // do something else...
}
Начиная с ES6/ES2015 для строк и предлагаемого для ES2016 для массивов, вы можете более легко определить, содержит ли источник другое значение:
if (haystack.includes(needle)) {
    // do your thing
}
Метод Array.indexOf() заменит первый экземпляр. Чтобы каждый экземпляр использовал Array.map():
a = a.map(function(item) { return item == 3452 ? 1010 : item; });
Конечно, это создает новый массив. Если вы хотите сделать это на месте, используйте Array.forEach():
a.forEach(function(item, i) { if (item == 3452) a[i] = 1010; });
Используйте indexOf для поиска элемента.
var i = items.indexOf(3452);
items[i] = 1010;
Легко выполняется с помощью цикла for.
for (var i = 0; i < items.length; i++)
    if (items[i] == 3452)
        items[i] = 1010;
Мое предлагаемое решение будет:
items.splice(1, 1, 1010);
 Операция объединения удалит 1 элемент, начиная с позиции 1 в массиве (т. 3452), и заменит его новым элементом 1010.
Вы можете редактировать любое количество списков с помощью индексов
например:
items[0] = 5;
items[5] = 100;
 Если вы используете сложный объект (или даже простой), и вы можете использовать es6, Array.prototype.findIndex является хорошим. Для массива OP они могли бы сделать,
const index = items.findIndex(x => x === 3452)
items[index] = 1010
Для более сложных объектов это действительно светит. Например,
const index = 
    items.findIndex(
       x => x.jerseyNumber === 9 && x.school === 'Ohio State'
    )
items[index].lastName = 'Utah'
items[index].firstName = 'Johnny'
Замена может быть выполнена в одну строку:
var items = Array(523, 3452, 334, 31, 5346);
items[items.map((e, i) => [i, e]).filter(e => e[1] == 3452)[0][0]] = 1010
console.log(items);Самый простой способ - использовать некоторые библиотеки, такие как underscorejs и метод сопоставления.
var items = Array(523,3452,334,31,...5346);
_.map(items, function(num) {
  return (num == 3452) ? 1010 : num; 
});
=> [523, 1010, 334, 31, ...5346]
var items = Array(523,3452,334,31,5346);
Если вы знаете значение, используйте
items[items.indexOf(334)] = 1010;
Если вы хотите знать, что это значение присутствует или нет, используйте
var point = items.indexOf(334);
if (point !== -1) {
    items[point] = 1010;
}
Если вы знаете место (положение), то прямо используете,
items[--position] = 1010;
Если вы хотите заменить несколько элементов, и вы знаете, что только начальная позиция означает только
items.splice(2, 1, 1010, 1220);
для получения дополнительной информации о . splice
Используя jQuery, это может быть легко:
var items = Array(523,3452,334,31,5346);
var val = 3452; // we want to replace this
var index = $.inArray(val, items); // get index of specific value
items[index] = 1010; // execute!
alert(items);<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> Неизменный способ замены элемента в списке с использованием операторов распространения .slice метода .slice.
const arr = ['fir', 'next', 'third'], item = 'next'
const nextArr = [
  ...arr.slice(0, arr.indexOf(item)), 
  'second',
  ...arr.slice(arr.indexOf(item) + 1)
]
Убедитесь, что работает
console.log(arr)     // [ 'fir', 'next', 'third' ]
console.log(nextArr) // ['fir', 'second', 'third']
Сначала перепишите свой массив следующим образом:
var items = [523,3452,334,31,...5346];
Далее, получите доступ к элементу массива через его номер индекса. Формула для определения номера индекса: n-1
Чтобы заменить первый элемент (n=1) в массиве, напишите:
items[0] = Enter Your New Number;
В вашем примере число 3452 находится во второй позиции (n=2). Таким образом, формула для определения номера индекса 2-1 = 1. Поэтому напишите следующий код, чтобы заменить 3452 на 1010:
items[1] = 1010;
Вот основной ответ, превращенный в функцию многократного использования:
function arrayFindReplace(array, findValue, replaceValue){
    while(array.indexOf(findValue) !== -1){
        let index = array.indexOf(findValue);
        array[index] = replaceValue;
    }
}
Я решил эту проблему, используя циклы for и перебирая исходный массив и добавляя позиции соответствующих массивов в другой массив, а затем перебирая этот массив и изменяя его в исходном массиве, затем возвращая его, я использовал функцию стрелки, но обычную функцию будет работать тоже.
var replace = (arr, replaceThis, WithThis) => {
    if (!Array.isArray(arr)) throw new RangeError("Error");
    var itemSpots = [];
    for (var i = 0; i < arr.length; i++) {
        if (arr[i] == replaceThis) itemSpots.push(i);
    }
    for (var i = 0; i < itemSpots.length; i++) {
        arr[itemSpots[i]] = WithThis;
    }
    return arr;
};
 И почему бы не просто: (JSON.stringify(arr1) === JSON.stringify(arr2))
 Протестировано в консоли браузера: a2 = [1,2] a1 = [0,2] (JSON.stringify(a2) !== JSON.stringify(a1)) true a1 = [1,2] (JSON.stringify(a2) !== JSON.stringify(a1)) false
var index = Array.indexOf(Array value);
        if (index > -1) {
          Array.splice(index, 1);
        }
отсюда вы можете удалить определенное значение из массива и на основе того же индекса Вы можете вставить значение в массиве.
 Array.splice(index, 0, Array value);
presentPrompt(id,productqty) {
    let alert = this.forgotCtrl.create({
      title: 'Test',
      inputs: [
        {
          name: 'pickqty',
          placeholder: 'pick quantity'
        },
        {
          name: 'state',
          value: 'verified',
          disabled:true,
          placeholder: 'state',
        }
      ],
      buttons: [
        {
          text: 'Ok',
          role: 'cancel',
          handler: data => {
            console.log('dataaaaname',data.pickqty);
            console.log('dataaaapwd',data.state);
          for (var i = 0; i < this.cottonLists.length; i++){
            if (this.cottonLists[i].id == id){
                this.cottonLists[i].real_stock = data.pickqty;
            }
          }
          for (var i = 0; i < this.cottonLists.length; i++){
            if (this.cottonLists[i].id == id){
              this.cottonLists[i].state = 'verified';   
          }
        }
            //Log object to console again.
            console.log("After update: ", this.cottonLists)
            console.log('Ok clicked');
          }
        },
      ]
    });
    alert.present();
  }
As per your requirement you can change fields and array names.
thats all. Enjoy your coding.
Самый простой способ это.
var items = Array(523,3452,334,31, 5346);
var replaceWhat = 3452, replaceWith = 1010;
if (i = items.indexOf(replaceWhat)) items.splice(i, 1, replaceWith);
console.log(items);
>>> (5) [523, 1010, 334, 31, 5346]