我现在在数组中有数据
A=[{“id”=3, “s1”=0.3, “s2”=0.5},{“id”=6, “s1”=0.3, “s2”=0.5},{“id”=23, “s1”=0.3, “s2”=0.5},….] etc
我添加它:
.data(A, function(d) {return d.id})
哪个有效。
现在我想要一个不同的数据结构更像:
B={“3”:{“s1":0.3,"s2":0.5},"6":{"s1":0.3,"s2”:0.5},”23”:{“s1":0.3,"s2":0.5}}
但是我不知道如何对这个结构进行.data()调用。如何编写提供索引的函数?
D3 data()
方法只接受3件事:
因此,您不能使用该对象(B
)。您需要在数组中转换它。
例如,这里有一个解决方案(在众多中)将其转换为类似于第一个的数组(A
):
const B = {
"3": {
"s1": 0.3,
"s2": 0.5
},
"6": {
"s1": 0.3,
"s2": 0.5
},
"23": {
"s1": 0.3,
"s2": 0.5
}
};
const data = Object.keys(B).map(function(d) {
return Object.assign({}, B[d], {
id: d
})
});
console.log(data)
这里的区别在于id
是一个字符串,而不是一个数字。如果你想要一个数字,只需要强制它。