向每个组添加不同数量的元素

时间:2013-03-20 07:55:02

标签: javascript d3.js

我是d3的新手而且我正在努力学习它如何处理多维数组。

我需要根据嵌套数组的长度向组中添加不同数量的元素:

Var data = [
            [1,2,3],
            [1,2,3,4],
            [1,2,3,4,5]
           ];

基于这个例子,我需要有3组; 第一个有3个元素,第二个有4个,第三个有5个。

迭代分配给每个组的 Datum 的正确方法是什么? d3是否提供了这样做的方法?

1 个答案:

答案 0 :(得分:1)

首先循环遍历组然后循环遍历每个组中的元素的简单演示:

var data = [
    [1,2,3],
    [1,2,3,4],
    [1,2,3,4,5]
];

var viz = d3.select("#viz");
var groups = viz
                .selectAll("div.group")
                .data(data, function(d, index) { 
                   return d.key; 
                })
                .enter()
                .append("div")
                .classed('group', true)
                .text(function(d, i) { return 'group ' + i});

var nodes   = groups
                .selectAll("div.node")
                .data(function(d, index){ 
                   return d;
                })
                .enter().append("div")
                .classed('node', true)
                .text(function(d, i) { return d});

作为一个要点,为了清晰起见,使用CSS样式 https://gist.github.com/widged/5203275

如果这不能真正回答你的问题,请告诉我