const isCycleObject = (obj,parent) => {
const parentArr = parent || [obj];
for(let i in obj) {
if(typeof obj[i] === 'object') {
let flag = false;
parentArr.forEach((pObj) => {
if(pObj === obj[i]){
flag = true;
}
})
if(flag) return true;
flag = isCycleObject(obj[i],[...parentArr,obj[i]]);
if(flag) return true;
}
}
return false;
}
const a = 1;
const b = {a};
const c = {b};
const o = {d:{a:3},c}
o.c.b.aa = a;
console.log(isCycleObject(o)
判断对象是否存在循环引用
最新推荐文章于 2024-11-02 12:42:04 发布
这篇文章介绍了isCycleObject函数,用于检测JavaScript对象中是否存在循环引用。它通过遍历对象并检查引用关系来确定是否形成循环。示例展示了如何使用该函数检测对象o中的循环引用。
摘要由CSDN通过智能技术生成