以相同的方式随机化两个数组,javascript
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'}]
并对其进行排序
像这样的事情应该是一种非常简单的方法:
//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]];
}
使用关联数组。然后洗牌键(最终作为第三个数组)并相应地重新排列前两个数组。
编辑:对不起,我把它读成PHP而不是javascript。我的错误。也许使用对象而不是数组。
您需要将两个数组中的值链接在一起。简单的方法是将它们放在第三个阵列中,以便pairs[index] = [ array1[index], array2[index] ]
.像您一样对此对数组进行排序,然后将对拆分回原始数组。
相关文章:
- 如何使用 node.js 比较两个 json 数组
- 用每小时的差值填充数组/列表-从下拉列表中给定两个时间值
- 访问$.ajax()函数中的两个不同数组
- 正在更新mongod中两个对象内部的数组
- 如何使用javascript合并两个对象数组
- 比较包含多个值对的两个JavaScript数组
- jQuery对象从html表中查询为两个一维数组,用于Chartist图表
- 检查来自不同数组的两个元素的一个属性是否相等
- 如何在javascript中合并两个对象数组
- JavaScript - 合并两个对象数组并根据属性值删除重复数据
- 效率:整数数组的一个子集中两个项之间的最大差值
- 将两个值组合成extjs 4.1的形式
- 如何将中的两个geoJSON功能集合添加到两个层组中
- 在 JQuery 验证中验证多个“数组命名”文件输入和下拉列表
- 在一个区间之间生成两个随机数组
- 使用两个捕获组和JavaScript的replace()函数
- 通过找到两个重复组之一的正则表达式组
- 从Javascript中的两个子数组中获取随机结果
- 如何在一个可选的非捕获组中创建两个捕获组
- paper.js:获取两个层/组的原始像素数据