【问题标题】:how to add random items to an array using a function that generates random numbers如何使用生成随机数的函数将随机项添加到数组中
【发布时间】:2020-02-10 00:47:50
【问题描述】:

我有这个问题,我真的不知道该怎么做。我无法弄清楚如何使用生成随机数的函数将项目添加到数组中。

首先我必须构建一个接受三个参数的函数。一个是最小随机数,另一个是最大值,第三个参数是数组的长度。

我尝试了一些方法,例如删除变量 x 并将其设置为空数组。

var newArray = [generateRandomArray(10, 1, 10)]


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

var generateRandomArray = function(max, min, length) {
  var x;
  for (y = 1; y >= length; y++) {
    x = [x.push(getRandomInt(min, max))]
    console.log(x)
  }
  return x;
}

var newArray = [generateRandomArray(10, 1, 10)] 返回 [5, 7, 9, 6, 6, 10, 8, 10, 9, 7]

我只是得到 []

【问题讨论】:

标签: javascript


【解决方案1】:

在函数存在之前,您试图在 sn-p 中调用 generateRandomArray,而您在 generateRandomArray 中的 for 循环将永远不会运行为 y 以 1 开头,而您将其比较为 >= length:

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

var generateRandomArray = function(max, min, length) {
  var x = [];
  
  for (var y = 0; y < length; y++) {
    x.push(getRandomInt(min,max));
  }

  return x;
}

var newArray = generateRandomArray(10, 1, 10);
console.log(newArray);

【讨论】:

    【解决方案2】:

    代码中的注释以显示修复。

    另外,作为一个旁注,我建议在使用它们的两个函数之一上切换 minmax 以保持一致性。只是一个好的做法。

    //moved generateRandomArray function to beginning so it is defined before it is called
     var generateRandomArray = function(max, min, length) {
      var x = []; //initialise array
      for (y = 1; y <= length; y++) { //fix the incorrect sign so the loop works
        x.push(getRandomInt(min, max)); //fix the fact you kept overriding x and instead just push to the array
        console.log(x)
      }
      return x;
    }
    
    var newArray = [generateRandomArray(10, 1, 10)]
    
    console.log("newArray", newArray);
    
    function getRandomInt(min, max) {
      return Math.floor(Math.random() * (
        max + 1 - min)) + min;
    }
    
       

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-18
      • 1970-01-01
      相关资源
      最近更新 更多