如何使用csv数据上的过滤器创建表

时间:2015-09-15 07:45:46

标签: d3.js

我正在尝试使用d3.js从csv创建一个html表。这是我的代码:

  d3.text('../data/satra_capitalasset_v_projectcount_m_b_enddate_executet.csv', function(data) {
    var parsedCSV = d3.csv.parseRows(data).filter;


var sampleHTML = d3.select("body")
        .append("table")
        .style("border-collapse", "collapse")
        .style("border", "2px black solid")

        .selectAll("tr")
        .data(parsedCSV)
        .enter().append("tr")
        .selectAll("td")
        .data(function(d){return d;})
        .enter().append("td")
        .style("border", "1px black solid")
        .style("padding", "5px")
        .on("mouseover", function(){d3.select(this).style("background-color", "aliceblue")})
        .on("mouseout", function(){d3.select(this).style("background-color", "white")})
        .text(function(d){return d;})
        .style("font-size", "12px");
});

现在有效。但我只需要csv文件的一些(不是全部)数据。所以我需要使用过滤器来获取一些数据。我的数据是这样的:

name   project   company   
a1       p1         c1   
a2       p2        c1  
a3       p3         c3
a4       p4         c1

现在我只需要company="c1"&&来自我的数据的project="p1"。所以 我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

我的问题通过使用Gillsa的评论(我不确定姓名)来解决,这是答案:

   var parsedCSV = d3.csv.parseRows(data);

   var filteredArray = parsedCSV.filter(function(obj) {
       //debugger;
       if (obj[1] == 'c1 ' && obj[3] == '‌p1') {

           return obj;

       }