Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中洗牌列表_Javascript_Jquery_Random_Shuffle - Fatal编程技术网

如何在javascript中洗牌列表

如何在javascript中洗牌列表,javascript,jquery,random,shuffle,Javascript,Jquery,Random,Shuffle,假设我有一个Javascript列表,如下所示: var list_of_list = [["N", "B"], ["E", "B"], ["Y", "R"], ["R", "R"], ["A", "B"], ["U", "R"]] 我想对列表的第一级排序进

假设我有一个Javascript列表,如下所示:

var list_of_list = [["N", "B"], ["E", "B"], ["Y", "R"], ["R", "R"], ["A", "B"], ["U", "R"]]
我想对列表的第一级排序进行随机化,而不在列表内部进行随机化。那么比如说,

shuffle(list_of_lists) 
> [["E", "B"], ["R", "R"], ["Y", "R"], ["N", "B"], ["U", "R"], ["A", "B"]]
是一种可能的随机洗牌,因为它在随机化顶级列表时保留嵌套列表的顺序

我尝试了许多不同的方法,但似乎无法实现洗牌。例如,这些洗牌工作的标准方法中没有一种:

var-list\U的列表=[“N”,“B”],[“E”,“B”],[“Y”,“R”],[“R”,“R”],[“A”,“B”],[“U”,“R”]
函数洗牌(a){
变量j,x,i;
对于(i=a.length-1;i>0;i--){
j=数学地板(数学随机()*(i+1));
x=a[i];
a[i]=a[j];
a[j]=x;
}
返回a;
}
函数shuffle_2(数组){
var currentIndex=array.length,temporaryValue,randomIndex;
//虽然还有一些元素需要洗牌。。。
而(0!==currentIndex){
//选择剩余的元素。。。
randomIndex=Math.floor(Math.random()*currentIndex);
currentIndex-=1;
//并将其与当前元素交换。
临时值=数组[currentIndex];
数组[currentIndex]=数组[randomIndex];
数组[randomIndex]=临时值;
}
返回数组;
}
list\u of_list2=list\u of_list.sort(func);
函数func(a,b){
返回0.5-Math.random();
} 
console.log(列表2.join(“|”)的列表);
log(shuffle(列表中的列表).join(“|”);
log(shuffle_2(列表的列表)。join(“|”)
var-list\U的列表=[“N”,“B”],[“E”,“B”],[“Y”,“R”],[“R”,“R”],[“A”,“B”],[“U”,“R”];
函数洗牌(a){
常数arrlength=a.长度;
让洗牌=[];//返回数组
设numsused=[];//按兰德选择的数字
while(shuffled.length日志(洗牌(列表中的列表))你能详细解释一下“不起作用”吗?我把代码转换成一个代码段,它们都在按照你的解释工作。嗯,它们似乎在那个代码段中工作。也许我的问题在别处。。。很抱歉,这个常量shuffle=(arr=[])=>{return arr.sort(()=>0.5-Math.random())}