我有两个数组var skladby=["skladba00", "skladba01", "skladba02", "skladba03"];var zoznam=["text00", "text01", "text02", "text03"];
我想按相同的顺序随机化/随机排列这两个数组,但是[0]位置的数组中的项必须保持在其位置。即var skladby=["skladba00", "skladba02", "skladba03", "skladba01"];var zoznam=["text00", "text02", "text03", "text01"];
谢谢你的答案。

最佳答案

要更改阵列,
首先获得改组后的顺序,然后将新排列添加到现有阵列的末尾。

然后从索引1拼接到新排列开始的位置(原始长度)。

索引0处的元素不受影响。

var skladby= ["skladba00", "skladba01", "skladba02", "skladba03"];
var zoznam= ["text00", "text01", "text02", "text03"];

var i=0, len= skladby.length, next, order=[];
while(i<len)order[i]= ++i; //[1,2,3...]
order.sort(function(){return Math.random()-.5});


for(i= 0; i<len; i++){
    next= order[i];
    skladby.push(skladby[next]);
    zoznam.push(zoznam[next]);
}
skladby.splice(1, len);
zoznam.splice(1, len);

/ *返回值

skladba00,skladba03,skladba01,skladba02

text00,text03,text01,text02
* /

09-17 17:39