[英]Randomize two arrays the same way, javascript
我正在使用javascript并尝试同步两个数组,以便两个数组具有相同的索引位置。
var array1 = ["word1","word2","word3","word4","word5"];
var array2 = [1,2,3,4,5];
array2.sort(function(){ return Math.random() -.5});
这会将array2变成像[2,3,1,5,4]这样的东西
现在我需要array1来获得相同的顺序: ["word2", "word3", "word1", "word 5", "word4"]
我怎样才能做到这一点?
你会更好地使用不同的结构。 即
[{k: 1, v:'word1'}, {k: 2, v:'word2'}]
然后排序
使用关联数组。 然后将键移动(最终作为第三个数组)并相应地重新排列前两个数组。
编辑:对不起,我把它读作PHP而不是javascript。 我的错。 也许使用对象而不是数组。
这样的事情应该是一个非常简单的方法:
//assume array1 is like in your example and
//array2 is the result of the randomization
var result = [];
for(var i = 0; i < array2.length; i++) {
result[i] = array1[array2[i]];
}
您需要将两个数组中的值链接在一起。 这样做的简单方法是将它们放在第三个数组中,因此pairs[index] = [ array1[index], array2[index] ]
。 像对待那样对这对数组进行排序,然后将对分割回原始数组。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.