Добавить элемент в массив, после определенного номера JS

111
30 ноября 2021, 03:00

Всем привет. Как можно добавить элемент в массив, после определенного номера. Например у меня есть массив - readyArray = [45, 12, 54, 23] Как можно добавить, например 60, после 12. Как это сделать? Помогите пожалуйста.

Answer 1

Для этого есть функция splice.

array.splice(start, deleteCount[, item1[, item2[, ...]]])

start

Индекс, по которому начинает изменять массив. Если больше длины массива, реальный индекс будет установлен на длину массива. Если отрицателен, указывает индекс элемента с конца.

deleteCount

Целое число, показывающее количество старых удаляемых из массива элементов. Если deleteCount равен 0, элементы не удаляются. В этом случае вы должны указать как минимум один новый элемент. Если deleteCount больше количества элементов, оставшихся в массиве, начиная с индекса start, то будут удалены все элементы до конца массива.

itemN

Необязательные параметры. Добавляемые к массиву элементы. Если вы не укажете никакого элемента, splice() просто удалит элементы из массива.

const readyArray = [45, 12, 54, 23]; 
readyArray.splice(2, 0, 60); 
console.log(readyArray);

Answer 2

function addNumToArray(inputNum, pointerNum, arr) { 
  const index = arr.findIndex(el => el === pointerNum); 
 
  return index !== -1 ? [ 
    ...arr.slice(0, index + 1), 
    inputNum, 
    ...arr.slice(index + 1) 
  ] : arr; 
} 
 
console.log(addNumToArray(60, 12, [1, 2, 3, 4, 5, 12, 18, 23, 46]))

READ ALSO
Постоянный focus на button (запрет . blur)

Постоянный focus на button (запрет . blur)

Есть форма регистрации в которой две кнопки ("Вариант 1" и "Вариант 2")

96
Как сделать Data и Vuex реактивными?

Как сделать Data и Vuex реактивными?

Всем привет: Есть такой код:

321
Axios как получить те же данные что и в fetch

Axios как получить те же данные что и в fetch

Делаю запрос на один и тот же эндпоинт при помощи axios и fetch (тут имеется ввиду подключаемая либа в nodejs а не вшитый функционал браузера)

95