Javascript 访问嵌套d3中的数据

Javascript 访问嵌套d3中的数据,javascript,d3.js,nested,Javascript,D3.js,Nested,我遇到了一个困扰我几天的问题 我的数据如下所示: var wrangled = d3.nest() .key(function(d){ return d.WarehouseID; }) .entries(data); 原产地仓库仓库ID 杰克阿尔法1号 杰克·布拉沃2号 C插孔三角形3 D查尔斯阿尔法1号 查尔斯·布拉沃2号 F查尔斯三角洲3号 G B

我遇到了一个困扰我几天的问题

我的数据如下所示:

            var wrangled = d3.nest()
                .key(function(d){
                return d.WarehouseID;
                })
            .entries(data);
原产地仓库仓库ID
杰克阿尔法1号
杰克·布拉沃2号
C插孔三角形3
D查尔斯阿尔法1号
查尔斯·布拉沃2号
F查尔斯三角洲3号
G Beau Alpha 1
博布拉沃2号
我喜欢三角洲3号
J塔科阿尔法1号
塔可布拉沃2号
L塔科三角洲3号
M维戈阿尔法1
N Vigo Bravo 2
O维戈三角洲3号

我想做的是在左边列出一个带原点的块。在仓库中间有一块积木。然后我会把不同的区域放在仓库里

我使用d3.map制作了左侧和中部的块列表:

            var warehouse = d3.map(data, function(d){
            return d.Warehouse;
            })
            .keys();

            svg.selectAll("DWH")
                .data(DWHs)
                .enter()
                .append("rect")
                .attr("x", w/2)
                .attr("y", function(d, i) {
                        return (i * (h / warehouse.length))+ 5;
                })
                .attr("width", 200)
                .attr("height", (h / (warehouse.length + 0.5)));
这很有效。但是,当我想要在仓库块中添加区域时,我需要能够参考该块应该位于哪个仓库中。我认为这在map函数中是不可能的,但在d3.nest中应该是可能的。所以我试过这样的方法:

            var wrangled = d3.nest()
                .key(function(d){
                return d.WarehouseID;
                })
            .entries(data);
但是当我想要绘制仓库时,我必须访问数据。。所以我想了一些类似的事情:

            svg.selectAll("DWH")
            .data(wrangled)
            .enter()
            .append("rect")
            .attr("x", w/2)
            .attr("y", function(d, i) {
                    return (i * (h / key.length))+ 5;
            })
            .attr("width", 200)
            .attr("height", (h / (warehouse.length + 0.5)));
但是key.length并不是一个真正的问题,我还没有找到一种方法来测量鸟巢的大小

我刚刚使用了前面的代码,但是当我想要在仓库中绘制区域时,我遇到了另一个问题。我需要能够说,例如,在数据的第一行:区域Jack,必须在仓库Alpha中绘制。使用if语句和嵌套应该是可行的。但我不知道从哪里开始。我一直在试图理解鸟巢,并在它上面找到了不少资源,但没有涉及到当你想用鸟巢画东西时如何访问鸟巢的不同部分。有人能帮我吗


我希望我的问题是清楚的。提前感谢。

对于嵌套数据,请使用
forEach
循环并使用
d.key
value
访问数据元素。对于嵌套数据,请使用
forEach
循环并使用
d.key
value
访问数据元素。