【发布时间】:2019-09-23 05:40:02
【问题描述】:
是否可以删除对象内部的循环类型?
说吧
result = {
a : [Array],
b : [Object],
c : [Circular],
d : 'string'
e : {
x : [Circular],
y : {
z : [Circular]
}
}
}
到
result = {
a : [Array],
b : [Object],
d : 'string'
}
我想过滤掉对象中的所有圆形类型。
尝试 1:
由于每个对象的名称在子对象中也是相同的。 我试图删除它,因为大多数儿童圆形对象只指向父母。 (实际上,我对这部分感到困惑)。这是我尝试使用的代码。
let keys = Object.keys(obj)
keys.forEach(val => {
if (obj[val] instanceof Object || obj[val] instanceof Array) {
Object.values(obj[val]).filter(function (value, index, arr) {
if (keys.indexOf(Object.keys(value)[index]) > 0) {
delete obj[val][index]
}
})
}
})
【问题讨论】:
-
是的,你试过什么?
-
采用此功能并对其进行调整以删除属性:stackoverflow.com/a/14962496/5768908
-
我试过stackoverflow.com/a/40293777/9506054和stackoverflow.com/a/14962496/5768908并修改它直接删除循环类型,但它只是给我“超出最大调用堆栈大小”
标签: javascript node.js json object circular-reference