我现在在数组中的数据为
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()调用,即如何编写提供索引的函数?
答案 0 :(得分:2)
D3 data()
方法仅接受三件事:
因此,您不能使用您拥有的对象(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
是字符串,而不是数字。如果您想要一个数字,只需将其强制。