【问题标题】:Smarter Way to Initialize Array in Javascript [duplicate]在Javascript中初始化数组的更聪明的方法[重复]
【发布时间】:2019-08-15 20:26:50
【问题描述】:

我编写了这段代码来检查随机函数的“随机”程度。

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。

【问题讨论】:

  • .fill() 方法?
  • 谢谢!我试过了!我只需要以不同的方式声明“计数”数组。 var count = new Array(arr.length); count.fill(0, 0);但它有效!

标签: javascript


【解决方案1】:

您可以使用Array#fill() 方法。例如,要创建一个完全由10s 填充的大小为 12 的数组,您可以使用以下命令:

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

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

【讨论】:

  • 谢谢!!真的很有帮助
  • 不客气 :) 如果您愿意,请接受答案,以便遇到您问题的其他人可以找到它。
【解决方案2】:

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

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

【讨论】:

  • 非常感谢!!帮助很大:)
【解决方案3】:

您可以执行以下操作

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

【讨论】:

  • 也谢谢你:))))
【解决方案4】:

如果您只需要循环传递给函数的参数,您可以使用 arguments 关键字访问它们。

【讨论】:

  • 这次我没有传递任何参数,但我会尝试使用它下次。 :)
猜你喜欢
  • 2011-08-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多