我无法弄清楚如何按名称嵌套我的数据。
我的数据如下:
var data = [
[[{name: "Bonpoint"}], [
{axis: "Coton", value: 1},
{axis: "Laine", value: 0.8},
{axis: "Cachemire", value: 0.6},
{axis: "Soie", value: 0.20},
{axis: "Angora", value: 0.20},
{axis: "Autres", value: 0.20},
{axis: "Nylon", value: 0},
{axis: "Acrylique", value: 0},
{axis: "Viscose", value: 0},
{axis: "Polyuréthane", value: 0},
{axis: "Polyester", value: 0.20}]],
[[{name: "Petit Bateau"}], [
{axis: "Coton", value: 1},
{axis: "Laine", value: 0.40},
{axis: "Cachemire", value: 0},
{axis: "Soie", value: 0},
{axis: "Angora", value: 0},
{axis: "Autres", value: 0},
{axis: "Nylon", value: 0},
{axis: "Acrylique", value: 0},
{axis: "Viscose", value: 0},
{axis: "Polyuréthane", value: 0},
{axis: "Polyester", value: 0.20}]],
...etc
我尝试了这行代码:
var names = d3.nest()
.key(function (d) {return d[0].map(function (o) {return o.name})})
.entries(data);
但是当我输入console.log(names)
时,我得到的只是一个数组对象,而不是直接的名字。您是否知道我如何直接访问name
中的data
?
谢谢。
答案 0 :(得分:2)
尝试使用object()
(或map()
)代替entries()
:
var names = d3.nest()
.key(function (d) {return d[0].map(function (o) {return o.name})})
.object(data);
console.log(names.keys())
// => ["Bonpoint", "Petit Bateau"]
console.log(names.Bonpoint)
// => [[{name: "Bonpoint"}], Array]