Javascript 读取D3中的CSV并将其转换为数组数组

Javascript 读取D3中的CSV并将其转换为数组数组,javascript,arrays,csv,d3.js,Javascript,Arrays,Csv,D3.js,我将以下小数据集硬编码到代码中的变量中: var dataset = [['CENTRAL', 44, 552, 18565], ['NORTHERN', 42, 945, 20092], ['SOUTHERN', 96, 795, 30095], ['PARK', 1, 640, 9341], ['MISSION', 66, 1198, 18542],

我将以下小数据集硬编码到代码中的变量中:

var dataset = [['CENTRAL', 44, 552, 18565], 
                ['NORTHERN', 42, 945, 20092], 
                ['SOUTHERN', 96, 795, 30095], 
                ['PARK', 1, 640, 9341], 
                ['MISSION', 66, 1198, 18542], 
                ['TENDERLOIN', 23, 113, 10735], 
                ['RICHMOND', 9, 561, 9082], 
                ['TARAVAL', 81, 789, 11966], 
                ['INGLESIDE', 5, 1368, 13414], 
                ['BAYVIEW', 7, 985, 14711]];
现在,此数据集直接取自.csv文件,如下所示:

District,Prostitution,VehicleTheft,Totalcrimecount
CENTRAL,44,552,18565
NORTHERN,42,945,20092
SOUTHERN,96,795,30095
PARK,1,640,9341
MISSION,66,1198,18542
TENDERLOIN,23,113,10735
RICHMOND,9,561,9082
TARAVAL,81,789,11966
INGLESIDE,5,1368,13414
BAYVIEW,7,985,14711
[Object, Object, Object, Object, Object, Object, Object, Object, Object, Object]

District: "CENTRAL"
Prostitution: "44"
Totalcrimecount: "18565"
VehicleTheft: "552"
但是,我显然希望能够直接读取文件,我尝试使用以下方法:

var dataset_csv = d3.csv("datafile.csv", function(d){
    console.log(dataset_csv = d)
}); 
这给了我一个如下所示的对象数组:

District,Prostitution,VehicleTheft,Totalcrimecount
CENTRAL,44,552,18565
NORTHERN,42,945,20092
SOUTHERN,96,795,30095
PARK,1,640,9341
MISSION,66,1198,18542
TENDERLOIN,23,113,10735
RICHMOND,9,561,9082
TARAVAL,81,789,11966
INGLESIDE,5,1368,13414
BAYVIEW,7,985,14711
[Object, Object, Object, Object, Object, Object, Object, Object, Object, Object]

District: "CENTRAL"
Prostitution: "44"
Totalcrimecount: "18565"
VehicleTheft: "552"
我的问题是,这可能很简单,我如何将这些对象转换为像初始数据集一样的数组数据结构?我已经和它斗争了一段时间了。非常感谢任何提示。

使用
数组#映射
迭代每个对象,并使用
对象。键
仅捕获键值

var数据集_csv=[{地区:“中部”,卖淫:“44”,总体犯罪记录:“18565”,车辆重量:“552”},{地区:“西部”,卖淫:“22”,总体犯罪记录:“4324”,车辆重量:“53”},{地区:“东部”,卖淫:“11”,总体犯罪记录:“23434”,车辆重量:“76”},
datasetar=dataset_csv.map(v=>Object.keys(v.map)(c=>Number(v[c])?Number(v[c]):v[c]);
console.log(datasetar)
使用
Array#map
迭代每个对象,并使用
object.keys
仅捕获键值

var数据集_csv=[{地区:“中部”,卖淫:“44”,总体犯罪记录:“18565”,车辆重量:“552”},{地区:“西部”,卖淫:“22”,总体犯罪记录:“4324”,车辆重量:“53”},{地区:“东部”,卖淫:“11”,总体犯罪记录:“23434”,车辆重量:“76”},
datasetar=dataset_csv.map(v=>Object.keys(v.map)(c=>Number(v[c])?Number(v[c]):v[c]);

console.log(datasetar)谢谢,但我想知道如何将原始数字解析为整数,而不是字符串,就像上面的代码那样?您可以将
+
放在
v[c]
前面来解析所有值,但“CENTRAL”也试图变成一个数字,这显然不起作用。@Khaine775已修复。这是一个非常优雅的解决方案,感谢您的灵感!谢谢,但我想知道如何将原始数字解析为整数,而不是字符串,就像上面的代码那样?您可以将
+
放在
v[c]
前面来解析所有值,但“CENTRAL”也试图变成一个数字,这显然不起作用。@Khaine775已修复。这是一个非常优雅的解决方案,感谢您的灵感!