0

我正在使用 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"]

我怎样才能做到这一点?

4

4 回答 4

2

你会更好地使用不同的结构。IE

[{k: 1, v:'word1'}, {k: 2, v:'word2'}]

并对其进行排序

于 2012-04-16T11:20:28.460 回答
0

使用关联数组。然后随机播放键(最终作为第三个数组)并相应地重新排列前两个数组。

编辑:对不起,我把它读成 PHP 而不是 javascript。我的错。也许使用对象而不是数组。

于 2012-04-16T11:19:18.603 回答
0

这样的事情应该是一种非常简单的方法:

//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]];
}
于 2012-04-16T11:19:46.750 回答
0

您需要将两个数组中的值链接在一起。简单的方法是将它们放在第三个数组中 so pairs[index] = [ array1[index], array2[index] ]。就像你做的那样对这个对数组进行排序,然后将对拆分回你的原始数组。

于 2012-04-16T11:26:21.087 回答