如何使用循环和if else语句分配随机数?

时间:2019-04-15 17:22:57

标签: javascript

我正在尝试根据先前的用户输入快速为变量分配随机数。

现在,我让用户输入一个介于0到10之间的数字。我想使用输入的数字来随机生成另一个数字。

当前,我正在为每个玩家执行if / else if语句。

function skill() {
   if (s[0] == 0) {
     s[0] = randomNumber(2,6);
   } else if (s[0] == 1) {
     s[0] = randomNumber(3,7);
   }

  }
});

我可以为每个玩家做一个if else语句,大概需要20行。有没有更有效的方法来根据用户输入的数字来收集变量?

2 个答案:

答案 0 :(得分:0)

您可以使用常规的For循环来遍历数组中的每个元素以获取技能逻辑。另外,您可以使用forEach函数对数组中的每个元素执行逻辑。以下是基于您的代码的示例。

FOR循环

const s = [1, 0, 1, 0, 0, 1, 0];

function skill() {
 for(var i = 0; i < s.length; i++) {
  if (s[i] == 0) {
     s[i] = getRandomInt(2,6);
   } else if (s[i] == 1) {
     s[i] = getRandomInt(3,7);
   }
   console.log(s[i]);
  }  

};

function getRandomInt(min, max) {
  min = Math.ceil(min);
  max = Math.floor(max);
  return Math.floor(Math.random() * (max - min)) + min;
};

skill();

每种功能的替代方法

function skill() {
  s.forEach( function(i) {

    if (s[i] == 0) {
     s[i] = getRandomInt(2,6);
   } else if (s[i] == 1) {
     s[i] = getRandomInt(3,7);
   }

  });    

};

答案 1 :(得分:-1)

    // check this out for size

var skill=function() {
   if (s[0] === 0) {
     s[0] = Random(2,6);
   } else if (s[0] === 1) {
     s[0] = Random(3,7);
   }

  }