Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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 如何洗牌两个js数组而不使它们不匹配_Javascript_Arrays - Fatal编程技术网

Javascript 如何洗牌两个js数组而不使它们不匹配

Javascript 如何洗牌两个js数组而不使它们不匹配,javascript,arrays,Javascript,Arrays,我正在制作一个类似于youtube音乐的洗牌功能,当你点击按钮时,它会洗牌列表顺序(而不仅仅是随机选择一首歌曲并忽略列表顺序)。但我无法在不匹配配对的情况下洗牌 这是VisuJams的更新功能。我尝试了一些其他人发布的问题的答案,但是页面最终忽略了shuffle功能 this.fileNames = [ //some song files ]; this.trackTitles = [ //matching song titles ]; window.onload = shuf

我正在制作一个类似于youtube音乐的洗牌功能,当你点击按钮时,它会洗牌列表顺序(而不仅仅是随机选择一首歌曲并忽略列表顺序)。但我无法在不匹配配对的情况下洗牌

这是VisuJams的更新功能。我尝试了一些其他人发布的问题的答案,但是页面最终忽略了shuffle功能

this.fileNames = [
//some song files
    ];

this.trackTitles = [
//matching song titles
    ];
window.onload = shuffleorder()

function shuffleorder(){
//part i cannot figure out :(
}

我想要的是脚本能够洗牌两个列表,而不会使对不匹配,并且希望页面能够实际确认操作,使用以下方法将其随机化:

vararray1=[“a”、“b”、“c”];
var array2=[1,2,3];
var currentIndex=array1.长度、时间值、随机指数;
而(0!==currentIndex){
randomIndex=Math.floor(Math.random()*currentIndex);
currentIndex-=1;
时间值=数组1[当前索引];
array1[currentIndex]=array1[randomIndex];
array1[randomIndex]=时间值;
时间值=阵列2[currentIndex];
array2[currentIndex]=array2[randomIndex];
array2[randomIndex]=时间值;
}
控制台日志(array1);

控制台日志(array2)正如其他人所评论的那样,最好将文件名和曲目作为组合对象存储在单个数组中

无论如何,如果要使用两个数组,必须确保在两个数组中随机化相同的元素。因此,如果您将元素3与文件名的元素1切换,则对trackTitles也执行相同的操作

以下是一个示例:

this.fileNames=[“fileA”、“fileB”、“fileC”];
this.trackTitles=[“titleA”、“titleB”、“titleC”];
函数shuffle(){
var tempA;
var tempB;
对于(var a=0;aconsole.log(trackTitles)没有不匹配的对。。。哪双?请提供一个可复制的场景。关于洗牌有很多问题。为什么曲目标题和文件名是分开的?将它们存储为一个对象数组,每个对象都包含标题和文件名。因此,您有两个长度相同的数组,连接每个数据的唯一对象是索引?创建一个具有
fileName
trackTitle
属性的对象数组,并将它们存储在单个数组中。请注意,您正在直接调用该函数
window.onload=shuffleorder()
应该是
window.onload=shuffleorder
@brioshej文件名和曲目标题