当我在d3.js中执行.data(数据)时,如何跳过数组元素

时间:2018-03-03 02:56:59

标签: d3.js

我想如果数据与美国不同,d.pais! =“USA”数据被省略。我想如果数据与美国不同,d.pais! =“USA”数据被省略。并且没有创建圆圈。

我该怎么做?

    d3.selectAll("circle").remove();


    g.selectAll("circle")
        .data(data)
        .enter()
        .append("circle")
    .attr("cx", function(d) {
        if(d.pais=="USA" ){
            return projection([d.longitud, d.latitud])[0];
        }
    })
    .attr("cy", function(d) {
        if(d.pais=="USA" ){
            return projection([d.longitud, d.latitud])[1];
        }
    })
    .attr("r", function(d) {
        if(d.pais=="USA" ){
         return 3;
        }
    })

1 个答案:

答案 0 :(得分:1)

在D3逻辑中使用之前,过滤数据数组要容易得多:

var usaData = data.filter(d => d.pais === "USA");
g.selectAll("circle")
    .data(usaData)
    .enter()
    .append("circle")
...

您可以详细了解W3学校网站上的所有array manipulation functions ...