Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 提供过滤数据作为D3.js中绘制线字符串的输入_Javascript_Csv_D3.js - Fatal编程技术网

Javascript 提供过滤数据作为D3.js中绘制线字符串的输入

Javascript 提供过滤数据作为D3.js中绘制线字符串的输入,javascript,csv,d3.js,Javascript,Csv,D3.js,我目前正在以这种方式过滤从csv文件获得的数据 d3.csv("Viz2SampleData.csv", function(data43) { links = []; data43.filter(function(d,i) { if (d3.select("#select-owner").node().value == "ALL" && d3.select("#select-contractor").node().value != "ALL" &&

我目前正在以这种方式过滤从csv文件获得的数据

d3.csv("Viz2SampleData.csv", function(data43) 

{
 links = [];
 data43.filter(function(d,i)
  { 

    if (d3.select("#select-owner").node().value == "ALL" && d3.select("#select-contractor").node().value != "ALL" && d3.select("#select-launch").node().value == "ALL")
    {

   //   for(var i=0, len=d.length-1; i<=len; i++)
    //  {
          console.log(d.length)
        if (d3.select("#select-contractor").node().value == d.CountryOfContractor)
        {      
        return d;
        }


            ]
        })

    }



  })//closing for filter

不完全确定您尝试筛选的条件,但
filter
不会在适当的位置修改数组。它返回一个新的项目数组,筛选谓词的计算结果为
true
。因此,如果您想获得过滤后的数据项,您需要将
data43.filter()
的结果分配给某个对象;如果您不再关心其他结果,甚至可能再次
data43

同样,对于常量,最好先计算它们的值,而不是在循环内部

这就是我认为您试图实现的目标:

d3.csv("Viz2SampleData.csv", function(data43) {

  var links = [];
  var selectOwner = d3.select("#select-owner").node().value;
  var selectContractor = d3.select("#select-contractor").node().value;

  data43 = data43.filter((d,i) => {
    return (selectOwner === 'ALL') && (selectContractor === d.CountryOfContractor);
  });

  ...

乔纳森,我对你感激不尽。这很有魅力:)
d3.csv("Viz2SampleData.csv", function(data43) {

  var links = [];
  var selectOwner = d3.select("#select-owner").node().value;
  var selectContractor = d3.select("#select-contractor").node().value;

  data43 = data43.filter((d,i) => {
    return (selectOwner === 'ALL') && (selectContractor === d.CountryOfContractor);
  });

  ...