Как использовать метод slice () для разделения массива?

#javascript #arrays #for-loop #split #slice

#javascript #массивы #for-цикл #разделение #срез

Вопрос:

Ссылка на эту задачу: https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/basic-algorithm-scripting/slice-and-splice

Я не знал, как использовать splice (), поэтому я использовал другой способ решения проблемы. что я здесь сделал не так?

 function frankenSplice(arr1, arr2, n) {
let result = [];
let array1 = arr1.toString();
let array2 = arr2.toString();

for (let i = 0; i<array1.length; i  ){
for (let j = 0; j<array2.length; j  ){
  if (array1[j] == n){
     return result  = array2[j]   array1   array2.slice(1);
      }
   }
}
   return resu<
}

console.log(frankenSplice([1, 2, 3], [4, 5], 1));
  

Он должен возвращать [4, 1, 2, 3, 5], однако мой код возвращает [41,2,3,5].
Я хотел использовать arr1.split(), чтобы между 4 и 1 была запятая, но там написано, что arr1.split не является функцией.

Я чувствую, что я так близок к ответу, но также чувствую, что моя логика может быть совершенно неверной.

Пожалуйста, помогите, спасибо!

Комментарии:

1. ой. это действительно одна строка, если вы делаете это правильно. было ли попытка выяснить это менее пугающей, чем поиск в Google функции splice?

Ответ №1:

  • В первой строке используется синтаксис spread для копирования элементов массива в другой массив, поскольку исходный массив не должен быть изменен, согласно правилам.
  • Во второй строке используется splice , и начиная с n -го индекса, удаляются 0 элементы из массива, а затем копируются все элементы из array1 в него.
  • Затем мы вернули скопированный массив.

функция frankenSplice(arr1, arr2, n) {
var a = […arr2]
a.splice(n, 0, …arr1);
возвращает a;
}

Комментарии:

1. splice выполняет две вещи. он добавляет элемент в массив и удаляет элементы из массива. на самом деле это должны быть две отдельные функции, но они сделали это именно так. первый параметр сообщает ему, с чего начать добавление или удаление. второй параметр сообщает ему, сколько элементов нужно удалить, после этого все остальные параметры, переданные в функцию, добавляются в массив с n-м индексом.

2. @yg2160 — я понятия не имею, правильно ли вы это понимаете. я знаю, вы понимаете, как скопировать мой ответ в комментарий.. надеюсь, объяснение было полезным.

3. Привет, объяснение метода splice () действительно понятно, я буду больше практиковаться с ним. Спасибо!