我有一个键值数组,用于存储节点及其所有连接。该数组看起来像:
A => {C}
B => {D}
C => {A,F,G,H,J}
D => {B}
E => {F,G,H}
F => {C,E}
G => {C,E}
H => {C,E}
I => {-}
J => {C}
K => {-}
我想结合所有具有相同值的键。在这种情况下,F,G和H具有相同的值,以及A和J.我想将它们放在类似于arr = [{F,G,H},{A,J}]的数组中; < / p>
如何在javascript中完成?
答案 0 :(得分:0)
为了解决这个问题,您需要更深入地了解javascript的工作原理
看看这段代码
var a = []
var b = [a]
a.push(b)
如果你看一下b
的变量,你会发现它是一个空数组。原因是当你尝试分配a = [b]
时,javascript将删除你的b值,因为它是一个循环依赖。
为了解决这个问题,您需要以相反的方式定义a
和b
。
看看这段代码
var c,d;
Object.defineProperty(window,'c',{value : []});
Object.defineProperty(window,'d',{value : []});
c.push(d);
现在,如果你看c
它有一个循环依赖;
了解有关defineProperty
的更多信息