我有这样一个数据字典:洗牌阵列属性在JavaScript
var data = {
'text1': 1,
'text2': 2,
'text3': 3,
...
'text20': 20
];
我需要选择那些键的随机选择,然后打乱它的价值。在这个例子中,它应该写这样的事情:
> console.log(choose(data, 5));
[ { key: 'text15', value: 8 },
{ key: 'text6', value: 3 },
{ key: 'text3', value: 15 },
{ key: 'text19', value: 6 },
{ key: 'text8', value: 19 } ]
现在我提取键到另一个阵列和的Math.random(排序),但我被困在swaping的值,因为没有钥匙应具有最初的相同价值。
你会如何在这里交换关键值?
由于
是否有或没有更换?例如'text8'的值可以出现两次吗? – ninjagecko 2011-05-22 20:46:46
不,不能有重复的值。 – 2011-05-22 20:48:33
你是什么意思“没有钥匙应该有它最初的相同价值”?同样用一个关键函数'Math.random()'排序并不会给你一个等概率的排列;它取决于所使用的排序算法。你必须通过'Math.random()'获得N个键,存储这些键,然后按它们排序。 – ninjagecko 2011-05-22 20:57:06