我有两个数组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
* /