【问题标题】:How to create an array in JS that is initialized to 0? [duplicate]如何在JS中创建一个初始化为0的数组? [复制]
【发布时间】:2013-01-01 20:59:36
【问题描述】:

可能重复:
Most efficient way to create a zero filled JavaScript array?

我想在 JS 中创建一个数组,该数组将存储整数值。

我想将一些值增加 1,o 一开始我希望数组中的每个单元格都包含 0

在JS中可以做到吗?

注意:数组在创建时大小未知

【问题讨论】:

  • @AndreasKöberle - 请注意,在我的问题中,数组大小未知
  • 您的意思是说这个多维数组,并且您想将里面的每个元素初始化为0,这样您就可以递增每个项目而不会遇到未定义的问题?如果是这样,那么您将需要编辑此问题以更好地解释该问题以及标题,然后标记版主请求将此问题作为一个单独的问题重新打开,而不是他们认为重复的问题。

标签: javascript arrays


【解决方案1】:
var arr = [0,0,0,0];

incrementIndex(1,0);
incrementIndex(2,1);

function incrementIndex(index, value)
{
  arr[ index ] = arr[ index ] + value;


}

编辑:

var arr = returnArray(10);

function returnArray(numberofIndexes)
{
  var arr = new Array();
  for ( var counter = 0; counter < numberOfIndexes; counter++)
  {
     arr.push(0);
  }
  return arr;
}

【讨论】:

  • 但这不会创建一个未知大小的数组...
  • @Belgi 更新了代码。请立即查看
  • 谢谢,但“numberofIndexes”未知
  • @belgi 你只需要给一个初始值,以后可以随时扩展数组。
【解决方案2】:
Array.prototype.increaseAt = function(index){
    this[index] = this[index]+1 || 1
};
Array.prototype.getValueAt = function(index){
    return this[index] || 0;
};

像这样使用它:

var testArray = [];
testArray.increaseAt(3);
console.log(testArray.getValueAt(3)); // 1
console.log(testArray.getValueAt(1)); // 0

【讨论】:

  • 是的,这应该是 0。我可以让它打印 0 吗?感谢您的帮助!
  • @Belgi 我编辑了答案......不是很好的方法,但也许你可以使用它。
  • 谢谢!顺便说一句:我可以像这样使用“Array.prototype ...”还是我需要包含一些东西(比如在C/C++中)?
  • @Belgi 您不需要包含任何内容。数组是内置类。
  • 弄乱Array、Date等的原型并不是一个好习惯。即使是一小段代码......如果它很短,一个单独的函数也不会受到伤害。
【解决方案3】:

您可以通过该项的索引访问数组项,例如item[index] += 1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-01
    • 2011-02-05
    • 1970-01-01
    • 2018-04-07
    • 1970-01-01
    • 2018-11-21
    相关资源
    最近更新 更多