【问题标题】:Is it possible for a JavaScript array to contain itself?JavaScript 数组是否可以包含自身?
【发布时间】:2013-05-22 10:42:09
【问题描述】:

在 Ruby 中,it's possible for an array to contain itself,使其成为递归数组。是否也可以在自身内部放置一个 JavaScript 数组?

var arr = new Array();
arr[0] = "The next element of this array is the array itself."

现在我如何将 arr 移动到 arr[1] 中,以便数组递归地包含自身,(例如,arr[1]arrarr[1][1] 包含 arrarr[1][1][1] 包含 @987654330 @等)?

【问题讨论】:

  • 只需将其设置为arrarr[1] = arr.
  • 你可以这样做,但是如果你需要将它发送到远程机器,它会导致 JSON.stringify 抛出错误。

标签: javascript


【解决方案1】:

当然:

var a = [1];
a.push(a);

它们是同一个对象:

a[1] === a[1][1]  // true

还有一个令人信服的截图:

【讨论】:

  • 该屏幕截图来自哪个桌面应用程序或 Web 应用程序?
  • 由于 a[1] === a[1][1] === a[1][1][1] 实际上是错误的,因此将其显示在两行上可能更有意义:a[1] === a[1][1] // truea[1] === a[1][1][1] // true
  • @AndersonGreen 这看起来像是 Chrome 控制台的屏幕截图。
  • @AndersonGreen 好像是谷歌开发者工具)
  • @AndersonGreen 看起来像 Chrome 浏览器中开发者工具 (F12) 中的控制台。
【解决方案2】:

是的,当然:

var x = [];
x.push(x);
console.log(x[0] === x); // true

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多