反转对象值javascript

时间:2016-11-15 08:52:11

标签: javascript

假设我有一个看起来像这样的对象。

{
    source : 1,
    target : 0
}

该对象是动态生成的,作为驱动d3.js可视化的一些数据的一部分。该对象指示另一个对象中的2个数据集之间的链接。

我的可视化中有一个过滤器,它将数据显示为来自不同的来源,因此基本上链接数据需要反转。来源成为目标,目标成为源,所以它需要看起来像这样,

{
    source : 0,
    target : 1
}

是否有更好的方法可以循环访问我的对象,并在每次交互中获取源和目标,将它们存储在变量中,然后重新分配它们?

1 个答案:

答案 0 :(得分:0)

您可以获取密钥并在临时变量的帮助下交换值。

var object = { source: 1, target: 0 },
    temp,
    keys = Object.keys(object);

temp = object[keys[0]];
object[keys[0]] = object[keys[1]];
object[keys[1]] = temp;

console.log(object);

ES6与解构

var object = { source: 1, target: 0 },
    keys = Object.keys(object);

[object[keys[0]], object[keys[1]]] = [object[keys[1]], object[keys[0]]];

console.log(object);