如何检测圆形结构?

时间:2011-03-03 15:43:13

标签: javascript

例如,此代码:

var a = {};
a.a = a;
JSON.stringify(a);

将抛出:

TypeError: Converting circular structure to JSON

我的问题是,如何检测圆形结构?

2 个答案:

答案 0 :(得分:9)

Crockford的JSON implementation就是这么做的。看起来它只是在遍历对象图时保留一个列表。代码很容易理解。

答案 1 :(得分:3)

这是使用本机JSON检测的功能

function isCircular (d) {
  try {JSON.stringify(d)}
  catch (e) {return true}
  return false
}