我尝试编写一个函数,该函数可以将数组向左旋转,例如1,2,3,4,5,6,7,8,9并转到4,5,6,7,8,9,1, 2,3。首先,我在下面使用此函数,但结果是4,2,3,7,5,6,1,8,9。因此,我认为它不会退出循环,因为它仅在循环中执行一次。请有人可以帮助我吗?任何帮助,将不胜感激!提前致谢。
var a =[1,2,3,4,5,6,7,8,9];
var len =a.length;
for (i=0;i<3;i++ )
{
var b = a[i];
var j = i;
for(k=0;k<a.length;k++)
{
j+=3;
if(j<a.length)
{
a[i] = a[j];
i=j;
}
else {
j-=3;
a[j]=b;
break;
}
}
}
console.log(a);
如果您想要没有数组方法的算法,则可以这样操作:
var a=[1,2,3,4,5,6,7,8,9];
console.log(a);
//Iteration of rotation (Here rotated left 3 times) this can be as many as you want.
for(let i=0;i<3;i++){
//Store 'First Member' and 'Last Index' of array
let last = a.length - 1;
let first = a[0];
//Loop to store every (n+1)th term to nth except the last one
for(let j=0;j<last;j++){
a[j] = a[j+1];
}
//Finally add first item to last index
a[last] = first;
}
console.log(a);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句