只要存在循环引用 JSON.stringify 一定会报错
function isLoop(obj){
let flag = false
function check(obj, pObj){
pObj = pObj || [obj]
for(let key in obj){
if(typeof obj[key] === 'object'){
pObj.forEach(item=>{
if(item === obj[key]){
obj[key] = 'circle'
flag = true
}
})
check(obj[key],[...pObj, obj[key]])
}
}
return obj
}
check(obj)
return flag
}
let a = {
}
a.b = {
}
a.b.c = a
console.log(isLoop(a))