我有這樣一個數據字典:洗牌陣列屬性在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