2016-08-12 2 views
1

Ursprünglich war ich mit folgenden werden die Werte von 2 Variablen zufällig zu tauschen, wenn die Seite geladen:Swap die Werte von 4 Variablen mit Jquery oder Javascript

var value1 = 260; 
    var value2 = 325; 
    var chosenValue = Math.random() < 0.5 ? value1 : value2; 
    if (value1 == chosenValue) { var val = value1; } else { var val = value2; } 
    if (value1 == chosenValue) { var val2 = value2; } else { var val2 = value1; } 

aber jetzt muss ich aus 4 Werte tauschen und Ich weiß nicht, wie ich das machen soll.

var value1 = 260; 
    var value2 = 325; 
    var value3 = 195; 
    var value4 = 130; 

Beachten Sie, dass jeder Wert nur einmal verwendet werden muss und bei jedem Laden der Seite in zufälliger Reihenfolge angezeigt werden muss.

Hilfe?

+0

Warum haben Sie, wenn die Bedingung zweimal gleich? –

+0

Ich habe ehrlich gesagt keine Antwort .... Ich hätte natürlich einfach ein und auf die ersten Aussagen zurückgreifen sollen. – Bruce

Antwort

1

Hier wird eine Lösung mit splice:

Erstellen eines Arrays (arrayValues) mit allen Werten (unter Verwendung von concat), wir splice verwenden, um einen Zufallswert und zu entfernen, da die Quelle splice Array modifiziert, wird kein Wert wiederholt.

var value1 = 260; 
 
var value2 = 325; 
 
var value3 = 195; 
 
var value4 = 130; 
 

 
var arrayValues = [].concat(value1, value2, value3, value4); 
 

 
value1 = arrayValues.splice(Math.floor(Math.random()*arrayValues.length), 1); 
 
value2 = arrayValues.splice(Math.floor(Math.random()*arrayValues.length), 1); 
 
value3 = arrayValues.splice(Math.floor(Math.random()*arrayValues.length), 1); 
 
value4 = arrayValues.splice(Math.floor(Math.random()*arrayValues.length), 1); 
 

 
console.log("value1: " + value1 + ", value2: "+ value2+ ", value3: " + value3 + ", value 4: " + value4)

+1

Danke, ich habe dich gewählt und dich korrekt markiert, weil du ein Arbeitsbeispiel gegeben hast UND es erklärt hast :) – Bruce

0

var randomValues = [260, 325, 195, 130].sort(function() { 
 
    return .5 - Math.random(); 
 
}); 
 

 
// Array with the new random values 
 
console.log(randomValues);