JavaScript | Как сдвинуть массив вправо на 1 элемент?

JavaScript | Как сдвинуть массив вправо на 1 элемент?

Есть массив:

var massiv = [ [1,11] , [2,22] , [3,33] , [4,44] ]

Как подвинуть его элементы со сдвигом вправо на 1, чтобы последний элемент стал первым?

 

Функция сдвига элементов массива на 1 вправо

function rigntShiftArrByOne(arr){
   return [].concat(arr.slice(-1),arr.slice(0,-1))
}

Мы дважды воспользовались методом slice() и нарезали массив на нужные нам части.

В первый slice() мы передали параметр НАЧАЛА, который равен «-1». Это означает, что началом нарезки будет последний элемент. Второй параметр КОНЦА не был передан, поэтому он пуст — это означает что вернётся значение до самого конца массива.

Получили последний элемент массива в массиве
Получили последний элемент массива в массиве
massiv.slice(-1)
[ [4,44] ]

Во второй slice() мы передали параметр НАЧАЛА, который равен «0». Второй параметр КОНЦА равен «-1». Это значит что мы получим элементы массива от самого первого, до предпоследнего включительно (исключая последний).

Получили все элементы массива кроме последнего
Получили все элементы массива кроме последнего
massiv.slice(0,-1)
[ [1,11] , [2,22] , [3,33] ]

Теперь нам просто нужно соединить значения этих двух массивов в правильном порядке при помощи метода concat().

 

Вызываем функцию. Мы получим результат:

rigntShiftArrByOne(massiv)
[ [4,44], [1,11] , [2,22] , [3,33] ]
Вызвали функцию сдвига элементов массива на 1 вправо
Вызвали функцию сдвига элементов массива на 1 вправо

 

Информационные ссылки

Стандарт ECMAScripthttps://tc39.es/ecma262/multipage/

Раздел «23.1 Array Objects» — https://tc39.es/ecma262/multipage/indexed-collections.html#sec-array-objects