在Java中初始化数组的更智能方法

时间:2019-03-25 14:47:42

标签: javascript

我编写了这段代码,以检查随机函数的“随机性”。

Array.prototype.random = function() {
  var index = Math.floor(this.length*Math.random());
  return this[index];
}
var arr = new Array('a', 'b', 'c', 'd', 'e');

var count = [0, 0, 0, 0, 0]; //I want to ask about this part

for (var i = 0; i < 10000; i++) {
  var val = arr.random();
  console.log(val);

  switch (val) {
    case 'a':
      count[0]++;
      break;
    case 'b':
      count[1]++;
      break;
    case 'c':
      count[2]++;
      break;
    case 'd':
      count[3]++;
      break;
    case 'e':
      count[4]++;
      break;
  }
}

for (var i = 0; i < count.length; i++) console.log(count[i]);    

在此过程中,我想不出更好的方法来初始化'count'数组。使用这种方式,它将变得非常重复。如果我的“ arr”有1000个元素,则必须输入千0。有人可以为我建议更好的方法吗?

如果我不将'count'数组的每个元素初始化为0,则会得到NaN。

4 个答案:

答案 0 :(得分:0)

如果只需要遍历传递给函数的参数,则可以使用arguments关键字对其进行访问。

答案 1 :(得分:0)

我不确定这是否是您要的内容,但是如果您想用1000个相同的条目初始化一个数组,您要做的就是:

var count = new Array(1000).fill(0)

答案 2 :(得分:0)

您可以执行以下操作

var temp = new Array(1000);
var count = temp.fill(0); 

答案 3 :(得分:0)

您可以使用Array#fill()方法。例如,要创建大小为12的数组,并完全用10填充,可以使用以下代码:

const array = new Array(12).fill(10)
console.log(array)

Here有关此方法的更多文档。