Я пытаюсь написать функцию, которая принимает массив и возвращает новый массив со всеми элементами, смещенными на n индексов влево. Например:
rotLeft([1,2,3,4],2)
// should return [3,4,1,2]
Я написал рекурсивную функцию, которая удаляет значение по индексу 0 и присваивает его последнему индексу, используя .shift () и .push ().
const rotLeft = (array, n) => {
console.log(array, n); // <-- this prints out expected array
if (!n) return array; // <-- but this returns undefined! :(
array.push(array.shift());
rotLeft(array, n - 1);
};
console.log(rotLeft([1, 2, 3, 4, 5, 6, 7], 9));
Почему каждый console.log (массив) выводит ожидаемый массив, но массив не определен, когда функция возвращает?