如何在Javascript中将项目数组向上移动4个位置

Dar*_*bes 16 javascript arrays shift

如何在Javascript中将项目数组向上移动4个位置?

我有以下字符串数组:

var array1 = ["t0","t1","t2","t3","t4","t5"];
Run Code Online (Sandbox Code Playgroud)

我需要一个函数转换"array1"导致:

// Note how "t0" moves to the fourth position for example
var array2 = ["t3","t4","t5","t0","t1","t2"];  
Run Code Online (Sandbox Code Playgroud)

提前致谢.

Rus*_*Cam 29

array1 = array1.concat(array1.splice(0,3));
Run Code Online (Sandbox Code Playgroud)

在Firebug中运行以下内容进行验证

var array1 = ["t0","t1","t2","t3","t4","t5"];
console.log(array1);
array1 = array1.concat(array1.splice(0,3));
console.log(array1);
Run Code Online (Sandbox Code Playgroud)

结果是

["t0", "t1", "t2", "t3", "t4", "t5"]
["t3", "t4", "t5", "t0", "t1", "t2"]
Run Code Online (Sandbox Code Playgroud)

  • 作为函数 - 函数reorderArray(arr,startIndex,howMany){return arr.concat(arr.splice(startIndex,howMany)); }`也需要错误检查:) (2认同)

Luk*_*ský 14

您可以对数组进行切片,然后以相反的顺序连接它:

var array2 = array1.slice(3).concat(array1.slice(0, 3));
Run Code Online (Sandbox Code Playgroud)

  • 这很简洁。如果您要经常执行此操作,并且需要将其移位不同的大小,则可以将其放入函数中并传递变量以插入3所在的位置。(我犹豫地使用了“ shift”一词,因为这也是Javascript数组方法。) (2认同)