Javascript 基于对象属性将数据绑定到现有的元素数

Javascript 基于对象属性将数据绑定到现有的元素数,javascript,d3.js,Javascript,D3.js,我有100个元素,我正试图根据数据对象的属性使用D3来选择和修改这些元素 例如: [Object, Object] 0: Object name: "john" count: 32 1: Object name: "jane" count: 48 我基本上想做一些版本的: d3.selectAll(rect) .data(data) .attr('class', function(d) { retu

我有100个
元素,我正试图根据数据对象的属性使用D3来选择和修改这些元素

例如:

[Object, Object]
    0: Object
        name: "john"
        count: 32
    1: Object
        name: "jane"
        count: 48
我基本上想做一些版本的:

d3.selectAll(rect)
    .data(data)
    .attr('class', function(d) { return d.name });
…这样,前32个
class=“john”
,下48个
class=“jane”
,其余20个
没有类


现在它只是根据对象的数量进行分类,即第一个
class=“john”
,第二个有
class=“jane”
,其他98个没有类,但是我不知道如何在这里实现所需的行为…

最好的方法可能是在创建
时添加此类信息。但是,如果由于任何原因,您的设置不允许这样做,那么您应该拥有一个数组,该数组的元素数与您拥有的
的元素数相同
.data()
作用于数组中的所有元素,并且每个
(在您的情况下)继承数组中每个元素中包含的信息:

现在,当您执行第二个代码块时,您只更新到2,因为您的数组只包含2个对象。然后,您可以创建另一个数组,该数组总共包含100个元素,每个元素包含您想要的类:)


如果您还有其他问题,请告诉我

最好的方法可能是在创建
时添加此类信息。但是,如果由于任何原因,您的设置不允许这样做,那么您应该拥有一个数组,该数组的元素数与您拥有的
的元素数相同
.data()
作用于数组中的所有元素,并且每个
(在您的情况下)继承数组中每个元素中包含的信息:

现在,当您执行第二个代码块时,您只更新到2,因为您的数组只包含2个对象。然后,您可以创建另一个数组,该数组总共包含100个元素,每个元素包含您想要的类:)


如果您还有其他问题,请告诉我

如何创建
rect
s和数据?通过一个单独的函数绘制
rect
s,该函数首先执行以创建100个正方形。。。数据存储在一个
var data
变量中。问题是,为什么没有正确的名称属性?如何创建
rect
s和数据?通过一个单独的函数绘制
rect
s,该函数首先执行创建100个正方形。。。数据存储在一个
var data
变量中。问题是,为什么没有正确的名称属性呢?