3

我知道 javascript 不允许真正的多维数组,但是您可以通过在数组中包含数组来将它们“组合”在一起。

我有 2 个问题;

1) 将 10 个数组转换为 1 个包含 10 个数组的多维数组会改善、损坏还是对网页的性能没有影响?

2)我希望创建一个包含 100 个元素的数组,每个元素都是 2 个元素的数组,最后每个元素都是长度不确定的数组。

我有以下代码来创建这个“多维”数组:

var RouteArray = new Array(100);
for (var i=0; i <100; i++)
{
RouteArray[i]=new Array(2);
    for (var j=0; j <2; j++)
    {
    RouteArray[i][j] = new Array();
    }
}

这段代码合理吗?还是您有经验的编码员能够提出更好的方法?

我还假设我可以使用以下代码添加到上述多维数组中的不确定数组:

RouteArray[88][0].push(ValueToPush);

最后我可以使用以下方法调用我刚刚推送的值吗?

Var ValueAdded = RouteArray[88][0][0];

提前感谢您的时间,如果这个问题已在其他地方得到解答,我深表歉意,我确实尝试搜索,但要么无法理解以前的帖子,要么发现它们与我的情况如此不同,以至于我无法应用他们的建议。

约翰

4

2 回答 2

3

1) 将 10 个数组转换为 1 个包含 10 个数组的多维数组会改善、损坏还是对网页的性能没有影响?

几乎可以肯定没有性能影响,但它会对你理解代码和编写更少错误的能力产生巨大影响。

2)我希望创建一个有 100 个索引的数组,每个索引都将填充 2 个索引的数组,最后这 2 个索引中的每一个都有一个不确定长度的数组。

这将与您的示例代码大纲完全相同,如果您想弄湿自己的脚,这是一个很好的起点。在实践中,具有多维的数组并不总是最好的数据结构来建模你的代码使用的任何东西,主要是因为它们不是“可发现的”:你必须事先知道每个维是什么。

很有可能有一种更好的方法可以在任何特定场景中构建数据,但我们必须具体讨论。无论如何,您提供的代码将起作用。

于 2012-05-02T14:11:08.253 回答
1

需要考虑的事情:http: //jsperf.com/arraynew

于 2012-05-02T14:30:12.393 回答