处理d3.js中的可选数据
如果某些部分是可选的,您将如何处理数据?例如,此数据:处理d3.js中的可选数据,d3.js,D3.js,如果某些部分是可选的,您将如何处理数据?例如,此数据: [ { width: 10, height: 20, margin: { top: 10, right: 10, bottom: 10: left: 10 } }, { width: 10, height: 20 } ] 因此,我只想在margin可用时附加一些SVG rect。我可以使用visibility属性来隐藏它,但这意
[
{
width: 10,
height: 20,
margin: { top: 10, right: 10, bottom: 10: left: 10 }
},
{
width: 10,
height: 20
}
]
因此,我只想在margin
可用时附加一些SVG rect。我可以使用visibility属性来隐藏它,但这意味着我有不必要的节点,必须编写空检查代码以避免javascript错误
var svgobj = svg.selectAll('.object').data(objects);
var svgobjEnter = svgobj.enter().append('g')
.attr('class', 'object');
svgobjEnter.append('rect')
.attr('class', 'margin');
.attr('width', function(d) { return d.width + d.margin.left + d.margin.right; })
.attr('height', function(d) { return d.height + d.margin.top + d.margin.bottom; })
您可以筛选数据以执行此操作:
svg.selectAll("rect")
.data(objects.filter(function(d) { return d.margin != undefined; }))
.enter()
.append("rect")
// etc