1
我有一个如下所示的数据结构。在Javascript中阻止Array中的循环引用
array=[
{id:"a",children:[
{id:"b",children:[
{id:"d",children:[]}]},
{id:"c",children:[]}]}
]
如果我想在“C”插入元素{id:"e", children:["a","f"]
(“A”,“E”没有字符串,但节点的复印件)我要检查,它存在于上树和因此会创建一个循环参考。所以我认为我必须扭转阵列。但是因为我对Javascript和Node非常陌生,所以我不知道该怎么做。
这是一个好主意,创建一个数组,我将所有的依赖存储在?是这样的:
[
a:[],
b:[a],
c:[a,b]
d:[a,b]
]
然后我可以查找父数组中,并会看到,在C,A和B是媒体链接的依赖
这是一个有点混乱,但将这样的一个新的对象不会产生循环引用,它只是插入一个新的对象?要创建循环引用,该对象必须实际引用自身。 – adeneo
也许我写错了。我不会用“a”,“e”等字符串添加一个项目,但会添加一个节点的副本。所以它会创建一个 – Florian
如果'children:[e]'实际上指向了父对象,那么您会有循环引用,但这似乎不太可能,并且大部分时间都不成问题。无论如何,你不清楚你想要检查什么?在插入该对象时,是否要检查是否没有更多带有ID“”e“的对象,或者该对象尚未具有循环引用或什么? – adeneo