【问题标题】:how to identify/detech circular objects in java script?如何在 javascript 中识别/检测圆形对象?
【发布时间】:2021-03-03 10:21:18
【问题描述】:

如何识别/检测java脚本中的圆形对象类型?

圆形物体示例:

const obj = {    
  name: "loopObj"
};
    
const loopObj = {    
  obj    
};

obj.loopObj = loopObj;

如果我们尝试使用 JSON.stringify(obj) 对圆形对象进行字符串化,则会抛出如下所示的错误

TypeError:在 JSON.stringify 中将循环结构转换为 JSON ()

【问题讨论】:

  • 你想完成什么?你想找到圆形物体吗?还是要对对象进行字符串化?

标签: javascript object circular-reference stringify


【解决方案1】:

解决方案 1

这是一个使用trycatch检测圆形物体的简单函数

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

解决方案 2

Crockford's JSON implementation 就是这样做的。看起来它只是在遍历对象图时保留一个列表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-25
    • 1970-01-01
    • 2011-07-19
    • 1970-01-01
    • 2014-03-27
    • 1970-01-01
    • 2017-06-18
    相关资源
    最近更新 更多