Сдвиг массива

Имеется массив (алфавит):
var abc = new Array (a, b, c)
Задача: необходимо сдвинуть массив на какое-то K = 2 (допустим) чтобы получилось с, a, b.
2 ответа

А если чуть изменить исходный массив:
var abc = ['a','b','c','d'];
То результат должен быть:
// такой?
var newArr = ['c','d','a','b'];
// или такой?
var newArr = ['d','c','a','b'];
Это вы не указали, но вот решение для первого и второго варианта:
var abc = ['a','b','c','d'];
// Вариант 1
var newArr = abc.slice(2).concat(abc.slice(0,2)); //  ['c','d','a','b']
// Вариант 2
var newArr = abc.slice(2).reverse().concat(abc.slice(0,2)); // ['d','c','a','b']
P.S. Можно даже в функцию запаковать:
var abc = ['a','b','c','d','e','f'];
function shiftArray(arr, cnt){
    return arr.slice(cnt).concat(arr.slice(0,cnt));
}
console.log( shiftArray(abc, 3) );


Спасибо!