结合具有相同值的所有键:

时间:2016-03-09 15:49:08

标签: javascript arrays key

我有一个键值数组,用于存储节点及其所有连接。该数组看起来像:

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中完成?

1 个答案:

答案 0 :(得分:0)

为了解决这个问题,您需要更深入地了解javascript的工作原理

看看这段代码

var a = []
var b = [a]
a.push(b)

如果你看一下b的变量,你会发现它是一个空数组。原因是当你尝试分配a = [b]时,javascript将删除你的b值,因为它是一个循环依赖。

为了解决这个问题,您需要以相反的方式定义ab

看看这段代码

var c,d;
Object.defineProperty(window,'c',{value : []});
Object.defineProperty(window,'d',{value : []});
c.push(d);

现在,如果你看c它有一个循环依赖;

了解有关defineProperty

的更多信息