gpt4 book ai didi

javascript - JavaScript 中数组的最大深度

转载 作者:搜寻专家 更新时间:2023-11-01 04:12:45 24 4
gpt4 key购买 nike

所以,有一天,当我在 Stack Overflow 中遇到这个问题并感到好奇时,我被实验了:Maximum size of an Array in Javascript (JavaScript 中数组的最大大小)。

问题是,JavaScript 中数组的最大深度是多少?

我所说的深度是指在 JavaScript 放弃之前,您可以在一个数组中嵌套多少数组?

[1]           // Depth Level: 1
[1, [2]] // Depth Level: 2
[1, [2, [3]]] // Depth Level: 3
[1, [...]] // Depth Level: x?

是否依赖于机器,是否基于编译器?

不,我不确定这是否有任何实际用途,但它仍然是我很好奇的东西。

最佳答案

通常您可以嵌套不同数组直到内存不足,但您也可以嵌套同一个数组并获得有效的无限深度数组。

var x = [ ];
x.push(x);

x[0][0][0](...)[0]; // Now valid

这在大多数调试器中显示为 [ [Circular] ],因为它是所谓的“循环引用”,因为数组包含自身。

这类似于您拥有自引用对象的方式:

var x = { };
x.x = x;

// { x: [Circular] }

x.x.x.x.x.x.x.x.x(...).x; // Now valid

JavaScript 本身并不真正关心某物的深度,该语言没有内在限制。有时循环引用是一种特性,例如 x.y 指的是为了方便而返回引用 x 的东西,这是一种显示相互关联的方式。这技术上是无限深度,但您不太可能那样使用它。

这是该现象的一个简单示例:

var x = { };
var y = { };

x.y = y;
y.x = x;

x.y.x.y.x.y; // Pointless, but valid.

关于javascript - JavaScript 中数组的最大深度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51071455/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com