Как использовать сращивание и срез, чтобы поместить массив в другой массив - PullRequest
1 голос
/ 03 октября 2019

Мой вопрос касается вывода этой программы: в консоли FCC (freecodecamp) я вижу 4,3,2,1,5, тогда как в консоли узла я вижу [ 4, 3, 2, 1, 5 ] (то же самое с другими массивами).

Я также попробовал это в строке номер 8: let result = array2Copy.map(i => i.toString());

function frankenSplice(arr1, arr2, n) {
  let array2Copy = arr2.slice(0);

  for (let i = 0; i < arr1.length; i++){
    array2Copy.splice(n, 0, arr1[i]);
  }
  let result = array2Copy;  

  return array2Copy;
}

console.log(frankenSplice([1, 2, 3], [4, 5], 1));-->4,3,2,1,5
console.log(frankenSplice([1, 2], ["a", "b"], 1));-->a,2,1,b

В соответствии с консолью FCC, мне нужен следующий вывод: [4, 1, 2, 3, 5]

1 Ответ

1 голос
/ 03 октября 2019

Прежде всего имейте в виду, что аргументы splice:

  • (1) Индекс, в котором элементы должны быть добавлены / удалены
  • (2) Количество элементов вбыть удаленным
  • (3), (4), (5), ... (необязательно) Элементы для добавления

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

function frankenSplice(arr1, arr2, n) {
  // don't mutate the argument
  const newArr = arr2.slice();
  newArr.splice(n, 0, ...arr1);
  return newArr;
}

console.log(frankenSplice([1, 2, 3], [4, 5], 1)); //-->4,3,2,1,5
console.log(frankenSplice([1, 2], ["a", "b"], 1)); //-->a,2,1,b
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...