我想旋转整个数组,例如:
[1,2,3,4]
变为[3,4,1,2]
我目前的职能是:
function shuffle(o){
for(i = 0; i<Math.floor((Math.random() * o.length)); i++){
o.push(o.shift());
}
};
请告诉我我做错了什么。
答案 0 :(得分:1)
function shuffle(o){
for(i = 0; i < o.length; i++)
{
var Index = o.indexOf(i);
index=index+2;
if(index>3)
{
index=index-2;
var item=o.splice(index,1)
o.push(item);
}
else
{var item=o.splice(index,1)
o.push(item)
}
}
};
答案 1 :(得分:0)
您当前的功能只是将其移动一个随机数量,即它将其偏移一个随机数量。
相反,您希望从数组中随机选择并移动该元素。试试这个(未经测试):
function shuffle(o){
for(i = 0; i < o.length; i++){
var randomIndex = Math.floor(Math.random() * (o.length - i));
var item = o.splice(randomIndex, 1);
o.push(item);
}
};
编辑:似乎对你正在努力实现的目标感到困惑。我上面的回答假设你是指shuffle(随机化数组中元素的顺序)。