二维数组的构造函数

时间:2013-07-22 22:56:32

标签: javascript constructor

我在库中没有添加,所以我正在寻找的是纯JavaScript解决方案。

这不是提供的主题的重复。我希望这个线程打开,因为锁定它的人没有完全阅读我正在寻找的东西。提供一些简单的函数来初始化密集数组并不是我所追求的。阅读我写的内容。

我正在寻找一个构造函数,而不是一个在已知维度的数组上运行的函数。当触摸多维数组时,我正在寻找“刚刚发生”的东西,并且必须是一个诚实的善良构造函数,它在“背景”中运行,以便按需创建数组元素。程序员在“前景”。

如果我错了,请纠正我,但是当使用二维数组时,必须首先初始化第二个维度然后再尝试使用它。

这将是:

myArray[123] = [];
myArray[123][456] = 'Hi';

有没有办法创建一个构造函数来自动执行额外的初始化,这不会破坏一维数组的现有功能?

或者,有没有办法创建一个新的2DArray对象,它会自动允许一个人使用这两个维度而不进行准备工作?

当此问题出现问题时,应用程序无法预知下标可能是什么。

1 个答案:

答案 0 :(得分:0)

查看该问题:Is there a more concise way to initialize empty multidimensional arrays?

解决方案:

function createArray(length) {
  var arr = new Array(length || 0),
      i = length;

  if (arguments.length > 1) {
    var args = Array.prototype.slice.call(arguments, 1);
    while(i--) arr[i] = createArray.apply(this, args);
  }        
  return arr;
 }

只需使用参数调用每个维度的长度即可。用法示例:

var multiArray = createArray(100,100);提供大小为100x100的二维数组