最初我在使用以下内容在页面加载时随机交换2个变量的值:
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; }
但是现在我需要更换4个值,我不知道如何去做。
var value1 = 260;
var value2 = 325;
var value3 = 195;
var value4 = 130;
请注意,每个值只能使用一次,并且每次加载页面时都必须以随机顺序显示。
帮助?
答案 0 :(得分:1)
以下是使用splice的解决方案:
创建包含所有值的数组(arrayValues
)(使用concat),我们使用splice
删除随机值,因为splice
修改了源数组,没有重复的价值。
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 :(得分:0)
您可以将所有值添加到数组中,将其随机播放(How to randomize (shuffle) a JavaScript array?)然后再进行简单写入 value1 = arr [0] value2 = arr [1]等..
答案 2 :(得分:0)
var randomValues = [260, 325, 195, 130].sort(function() {
return .5 - Math.random();
});
// Array with the new random values
console.log(randomValues);