Как работает цикл, который имитирует работу метода shift?

Напишите функцию funcShift, которая эмулирует работу метода shift, функция, по нажатию кнопки создает новый массив где нулевым элементом выступает первый элемент исходного массива.

let a = [4,5,6];
function funcShift() {
    let b = [];
    for (let i = 1; i < a.length; i++) {
       b[i-1] = a[i]
    }
    a = b;
    document.querySelector('.out-8').innerHTML = a;
}

document.querySelector('.result-8').onclick = funcShift;


Объясните пожалуйста работу этого цикла. Спасибо!
  • Вопрос задан
  • 2174 просмотра
Решения вопроса 1
like-a-boss
@like-a-boss
Признайся,тебяТянетНаКодМужика,ты—программный гей
Идём по массиву a до конца, начиная с элемента с индексом 1, в данном случае это 5-рка. Записываем эту пятёрку в массив b на первую(нулевую) позицию. Повторяем всё то же самое ещё одну итерацию. Таким образом получаем массив b = [5, 6].
Далее заменяем исходный массив a новым массивом b, в котором на один элемент у нас меньше. При следующем клике всё повторится и в массиве a станет на ещё один элемент меньше. Ребят, это очень просто.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@ledovitiy
1) у вас создается массив а с элементами 4, 5, 6
2) при запуске функции создается пустой массив b
3) запускается цикл от 1 до конца массива а (то есть, от второго до последнего элемента массива а)
4) но, благодаря [i-1], в массив b записываются элементы массива а со сдвигом 1 (то есть, b[0] = a[1], b[1] = a[2])
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы