#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 () действительно понятно, я буду больше практиковаться с ним. Спасибо!