JavaScript函数创建4个推送到数组的随机数?

时间:2017-12-09 15:51:30

标签: javascript arrays function loops

而不是这样做:

var crystalValues = [];
crystalValues[0] = Math.floor(Math.random()*12+1),
crystalValues[1] = Math.floor(Math.random()*12+1),
crystalValues[2] = Math.floor(Math.random()*12+1),
crystalValues[3] = Math.floor(Math.random()*12+1),  

如何创建一个返回4个随机数的函数?

4 个答案:

答案 0 :(得分:1)

下面的函数创建一个随机整数数组。

count设置了多少,minmax设置了最小和最大随机值

    function createRandomArray(count,min,max){
        const rand = () =>  Math.floor( Math.random() * (max - min) + min);
        const vals = [];
        while(count-- > 0){ vals.push(rand()) }
        return vals;
    }
    console.log(createRandomArray(4,1,13));
    
    

您可以按如下方式将它们分配给另一个数组

const crystalValues = [];
crystalValues.push(...createRandomArray(4,1,13))

或者只是直接分配

const crystalValues = createRandomArray(4,1,13);

答案 1 :(得分:0)

使用for循环。

试试这个:

var crystalValues = [];

for(var i = 0;i < 4;i++){
  crystalValues.push(Math.floor(Math.random()*12+1))
}

console.log(crystalValues);

答案 2 :(得分:0)

您只需使用Array.from()

即可

&#13;
&#13;
var gen = () => {
	return Array.from({length: 4}, () => Math.floor( Math.floor(Math.random()*12+1)));
}

console.log(gen());
&#13;
&#13;
&#13;

答案 3 :(得分:0)

如果您尝试节省输入功能的时间,那么for循环就可以解决问题。

random4() {
    var crystalValues = [];
    for (var i=0; i < 4 ; i++) {
        randomNumber = Math.floor(Math.random()*12+1);
        while (crystalValues.indexOf(randomNumber) !== -1) {
            randomNumber = Math.floor(Math.random()*12+1);
        }
        crystalValues[i] = randomNumber;
    }
    return crystalValues;
}