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