【发布时间】:2013-07-22 22:56:32
【问题描述】:
我不使用添加库,所以我正在寻找的是一个纯 JavaScript 解决方案。
这不是提供的线程的副本。我希望这个线程打开,因为锁定它的人没有完全阅读我正在寻找的内容。提供一些微不足道的函数来初始化密集数组不是我所追求的。阅读我写的内容。
我正在寻找一个构造函数,而不是某个在已知维度的数组上运行的函数。我正在寻找在触摸多维数组时“刚刚发生”的东西,并且必须是一个诚实的构造函数,在“背景”中运行以按需创建数组元素而无需任何努力程序员在“前台”。
如果我错了,请纠正我,但是在使用二维数组时,必须先初始化第二维,然后再尝试使用它。
应该是这样的:
myArray[123] = [];
myArray[123][456] = 'Hi';
有没有办法创建一个构造函数来自动执行额外的初始化,而不会破坏一维数组的现有功能?
或者,有没有一种方法可以创建一个新的 2DArray 对象,它会自动允许一个人使用两个维度而无需准备工作?
当应用程序不知道下标可能是什么时,这个问题就会出现问题。
【问题讨论】:
-
@zerkms:不,他不创造物品。他只将
.length设置为 124 并创建 one 属性。 -
@zerkms: §15.4.5.1 如果你愿意 :-) 在网上搜索“sparse array”。
-
@Bergi:没有找到“稀疏数组”:-S
-
@Bergi:无论如何,我的观点是 - 拥有
[undefined x 123, 'Hi']看起来不是一个好的数组使用 PS:特别感谢 15.4.5.1 -
@zerkms - 引擎将创建一个项目并将长度设置为 124,我相信每个浏览器都会这样做,而不会在数组中创建 123 个未定义的项目,所以它是否在 ECMA 规范中与您的评论错误无关 -> jsfiddle.net/DCAaK