在javascript中向前移动数组

Ive*_*nev 3 javascript arrays shift alphabet

好吧,所以我不知道标题是否正确,但我正在努力做的是找到一个算法做这样的事情.所以我们有一个输入数组,例如:['a','b','c','d',...]直到字母表的结尾,以及一个要移位的数字.我必须输出数组,如['x','y','z','a','b','c',...],如果我有一个数字3移位; 关于如何做的任何想法?我试过了:

function solve(args)
{
    let arr = ['a', 'b', 'c', 'd'];
    let number = 3;

    for (let i = 0; i < arr.length; i++)
    {
        if (typeof arr[i + 1] === undefined)
        {
            arr[0] = arr[i];
        }
        else if (typeof arr[i - 1] === undefined)
        {
            arr[arr.length - 1] = arr[0];
        }
        else
        {
            arr[i] = arr[i + 1];
        }
    }
    console.log(arr);
}
Run Code Online (Sandbox Code Playgroud)

Pat*_*phy 6

这几乎是它除了它打印 [d,e,f ... a,b,c]

for(var i = 0; i < number; i++){
   arr.push(arr.shift());
}
Run Code Online (Sandbox Code Playgroud)

正如评论中所指出的那样(感谢@dtkaias):结果 [x,y,z,a,b,c...]

for(var i = 0; i < number; i++){
   arr.unshift(arr.pop());
}
Run Code Online (Sandbox Code Playgroud)

unshift函数将一个元素添加到数组的前面,而该pop函数删除最后一项,因此它将最后一项移动到number循环中的前面时间.

  • 做`arr.unshift(arr.pop());`而不是 (3认同)