我在库中没有添加,所以我正在寻找的是纯JavaScript解决方案。
这不是提供的主题的重复。我希望这个线程打开,因为锁定它的人没有完全阅读我正在寻找的东西。提供一些简单的函数来初始化密集数组并不是我所追求的。阅读我写的内容。
我正在寻找一个构造函数,而不是一个在已知维度的数组上运行的函数。当触摸多维数组时,我正在寻找“刚刚发生”的东西,并且必须是一个诚实的善良构造函数,它在“背景”中运行,以便按需创建数组元素。程序员在“前景”。
如果我错了,请纠正我,但是当使用二维数组时,必须首先初始化第二个维度然后再尝试使用它。
这将是:
myArray[123] = [];
myArray[123][456] = 'Hi';
有没有办法创建一个构造函数来自动执行额外的初始化,这不会破坏一维数组的现有功能?
或者,有没有办法创建一个新的2DArray对象,它会自动允许一个人使用这两个维度而不进行准备工作?
当此问题出现问题时,应用程序无法预知下标可能是什么。
答案 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的二维数组