我有两个这样的csv文件:
csv1 = `id,grade,gpa
1,42,2
1,44,2
1,52,2
1,62,2
2,65,3
3,17,2`;
csv2 = `id,status
2,yes
1,no
3,no`;
我是这样读csv的:
d3.queue()
.defer(d3.csv, "csv1.csv")
.defer(d3.csv, "csv2.csv")
.await(function(error, data, data2) {...}
把它们转换成:
data.forEach(function(d) {
d.id = d.id;
d.grade = +d.grade;
d.gpa = + d.gpa;
});
data2.forEach(function(d) {
d.id = d.id;
d.status = d.status;
});
我想根据ID将值“status”从第二个CSV添加到第一个CSV…
像这样的东西
[{
"id": "1",
"grade": "42",
"status": "no"
},
{
"id": "1",
"grade": "44",
"status": "no"
},....]
为此,我尝试了类似的操作,但收到以下错误消息
data1.forEach(function(d) {
var obj = data2.find(function(e) {
return d.id === e.id
});
d.status = obj.status;
});
未捕获类型错误:无法读取未定义的属性“status”
知道为什么吗?