Javascript数组随机得零

时间:2016-08-29 09:24:19

标签: javascript

我正在尝试在0和Array.length之间获取随机数。 我有这个:

getRandom() {
  const cars = Object.keys(this.index);
  const randomInt = Math.floor(Math.random() * cars.length);
  return cars[randomInt];
}

我跑了几次,在0的一个结果中找到getRandom()。我的key对象this.index中没有0

我的数学函数是错误的吗?

更新

阅读评论后,我知道getRandom()没有错。如果你们可以看一下,我也有reset()功能。

reset() {
  const cars = Object.keys(this.index);
  let i = cars.length;
  while (i--) {
    this.index[cars[i]] = 0;
  }
}

我是否有可能在0对象上添加新密钥this.index

3 个答案:

答案 0 :(得分:1)

我在这里看不到实际的问题。

Object.keys会将您的已命名的keys转换为数字(请点击此处https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Object/keys),此数字从0开始。

所以你的函数,正如你写的yourselv,将返回:

  

0和Array.length之间的随机数

答案 1 :(得分:0)

您可以使用此现有解决方案。

Generating random whole numbers in JavaScript in a specific range?

传递0和array.length为params。

答案 2 :(得分:-1)

我不知道你在看什么,但我们都缺乏这里的背景,所以我做了一个小例子来尝试用我自己的眼睛看问题的功能,它似乎没有你描述的问题。

Try it for yourself here - 也许是你运行该方法的数据就是问题?