javascript interview question #23

Сколько раз ты можешь сделать splice с массивом?

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Давай начнем с определения splice в JavaScript.

Функция splice доступна во всех JavaScript массивах и принимает переменное количество аргументов. Вот 4 важные вещи, которые тебе нужно знать о функции splice:

  • Первый параметр называется start и определяет индекс первого элемента, который будет удален из массива.

  • Второй параметр - deleteCount. Он определяет количество элементов, которые будут удалены.

  • Третий, четвертый и все следующие элементы — это новые значения, которые будут добавлены в массив

  • Функция splice возвращает массив сформированный из удаленных элементов начального массива

Теперь перейдем к нашему тесту.

Мы начинаем с массивом arr. В нем пять элементов - [1, 2, 3, 4, 5].

Первый splice удалить два элемента, начиная с arr[1]. Мы сразу же сохраняем их в splicedArr.

Перед вторым сплайсом у нас такое состояние:

[ 1, 4, 5 ]  // arr
[ 2, 3 ]     // splicedArr

Второй вызов splice снова удалит 2 elements из arr начиная от arr[1]. И мы остаемся с одним элементом — [ 1 ].

Дальше мы применяем деструктуризация ... к splicedArr и добавляем новые значения 2 и 3 к финальному состоянию arr.

Вот пример кода с двумя дополнительными вызовами console.log, который ты можешь запустить, чтобы лучше понять объяснение:

  const arr = [1, 2, 3, 4, 5];
  const splicedArr = arr.splice(1, 2);

  console.log(arr);         // [ 1, 4, 5 ]
  console.log(splicedArr);  // [ 2, 3 ]

  arr.splice(1, 2, ...splicedArr);
  console.log(arr);

ОТВЕТ: массив arr будет содержать значения [ 1, 2, 3 ]. Они и будут выведены на экран.