0

我不使用任何添加库,所以我正在寻找的是一个纯 JavaScript 解决方案。

这不是提供的线程的副本。我希望这个线程打开,因为锁定它的人没有完全阅读我正在寻找的内容。提供一些微不足道的函数来初始化密集数组不是我所追求的。读我写的。

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

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

它会是这样的:

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

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

或者,有没有一种方法可以创建一个新的 2DArray 对象,该对象将自动允许一个人在没有准备工作的情况下使用两个维度?

当应用程序不知道下标可能是什么时,这个问题就会出现问题。

4

1 回答 1

1

看到那个问题:有没有更简洁的方法来初始化空的多维数组?

解决方案:

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 的二维数组

于 2013-07-22T23:44:34.433 回答