用jquery或javascript

时间:2016-08-12 08:03:50

标签: javascript jquery

最初我在使用以下内容在页面加载时随机交换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;

请注意,每个值只能使用一次,并且每次加载页面时都必须以随机顺序显示。

帮助?

3 个答案:

答案 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);