j'ai un dictionnaire de données comme ceci:propriétés tableau Shuffling en JavaScript
var data = {
'text1': 1,
'text2': 2,
'text3': 3,
...
'text20': 20
];
je dois choisir une sélection aléatoire de ces touches, puis mélanger ses valeurs. Dans l'exemple, il faut écrire quelque chose comme ceci:
> 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 } ]
Pour l'instant j'extraire les clés dans un autre tableau et le tri par Math.random() mais je suis bloqué à swaping les valeurs car aucune clé doit avoir la même valeur qu'au départ.
Comment changer les clés/valeurs ici?
Merci
est-ce avec ou sans remplacement? par exemple. la valeur avec 'text8' peut-elle apparaître deux fois? – ninjagecko
Non, ne peut pas avoir de valeurs répétées. –
Que voulez-vous dire par «aucune clé ne devrait avoir la même valeur qu'au départ»? Le tri également par une fonction clé 'Math.random()' ne vous donne pas de permutation avec une probabilité égale; Cela dépend de l'algorithme de tri utilisé. Vous devez obtenir N clés via 'Math.random()', les stocker, puis les trier. – ninjagecko