Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.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_Arrays_Join_D3.js_Javascript Objects - Fatal编程技术网

Javascript D3.js操作对象数组

Javascript D3.js操作对象数组,javascript,arrays,join,d3.js,javascript-objects,Javascript,Arrays,Join,D3.js,Javascript Objects,我对javascript或D3.js不是很有经验,需要一些指导 我想加入两个数据集(对象数组)。我试图通过“加入”答案,将全国平均分数与州平均分数排成一行。要浏览数据,可以将其剪切并粘贴到中 我已经研究了几种javascript数组处理方法(Join()、Concatenate()等),但没有给出一个结果。我该怎么做这样的事- Select nationaldataset.nquestion , nationaldataset.nanswer , nationaldataset.nscore ,

我对javascript或D3.js不是很有经验,需要一些指导

我想加入两个数据集(对象数组)。我试图通过“加入”答案,将全国平均分数与州平均分数排成一行。要浏览数据,可以将其剪切并粘贴到中

我已经研究了几种javascript数组处理方法(Join()、Concatenate()等),但没有给出一个结果。我该怎么做这样的事-

Select nationaldataset.nquestion
, nationaldataset.nanswer
, nationaldataset.nscore
, statedataset.Score
From nationaldataset, statedataset 
WHERE nationaldatset.nanswer = statedataset.columnname 
AND statedataset.State in ['SD', 'MN', 'IA'] 

不幸的是,Javascript中没有
join
运算符或等效运算符——您必须显式搜索匹配项。在您的例子中,可以使用嵌套循环来实现这一点。代码看起来像这样

var results = [];
for(var i = 0; i < statedataset.length; i++) {
  if(statedataset[i].State == "SD" ||
     statedataset[i].State == "MN" ||
     statedataset[i].State == "IA") {
    var j = 0;
    for(j = 0; j < nationaldataset.length; j++) {
      if(nationaldataset[j].nanswer == statedataset[i].columnname) {
        break;
      }
    }
    if(j < nationaldataset.length) {
      results.push({
        "nquestion": nationaldataset[j].nquestion,
        "nanswer": nationaldataset[j].nanswer,
        "nscore": nationaldataset[j].nscore,
        "Score": statedataset[i].Score
      });
    }
  }
}
var结果=[];
对于(var i=0;i
这将为您提供一个可以与D3一起使用的数据结构。是的,几乎可以肯定有一种更好的方法

var results = [];
for(var i = 0; i < statedataset.length; i++) {
  if(statedataset[i].State == "SD" ||
     statedataset[i].State == "MN" ||
     statedataset[i].State == "IA") {
    var j = 0;
    for(j = 0; j < nationaldataset.length; j++) {
      if(nationaldataset[j].nanswer == statedataset[i].columnname) {
        break;
      }
    }
    if(j < nationaldataset.length) {
      results.push({
        "nquestion": nationaldataset[j].nquestion,
        "nanswer": nationaldataset[j].nanswer,
        "nscore": nationaldataset[j].nscore,
        "Score": statedataset[i].Score
      });
    }
  }
}