假设我有一个看起来像这样的对象。
{
source : 1,
target : 0
}
该对象是动态生成的,作为驱动d3.js可视化的一些数据的一部分。该对象指示另一个对象中的2个数据集之间的链接。
我的可视化中有一个过滤器,它将数据显示为来自不同的来源,因此基本上链接数据需要反转。来源成为目标,目标成为源,所以它需要看起来像这样,
{
source : 0,
target : 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);