如何使用javascript将CSV数据转换为削减数组数据?

时间:2010-09-09 07:47:26

标签: javascript csv

我正在尝试将CS​​V数据转换为削减数组数据,但我对javascript完全不熟悉,而且我现在还不知道该怎么做。有没有人有想法? 提前谢谢!

CSV数据:

year,USA,EU,UK,China,India
2003,10882,10970,1795,1575,599
2002,10383,9040,1564,1434,510
2001,10020,8303,1430,1345,479
2000,9762,8234,1438,1252,457
1999,9213,8901,1460,1158,447
1998,8720,8889,1423,1148,414

对象数组数据:

[{
  label: "USA",
  data: [[2003, 10882],
   [2002, 10383],
   [2001, 10020],
   [2000, 9762],
   [1999, 9213],
   [1998, 8720]]
 },

 {
  label: "EU",
  data: [[2003, 10970],
   [2002, 9040],
   [2001, 8303],
   [2000, 8234],
   [1999, 8901],
   [1998, 8889]]
 },

 {
  label: "UK",
  data: [[2003, 1795],
   [2002, 1564],
   [2001, 1430],
   [2000, 1438],
   [1999, 1460],
   [1998, 1423]]
 },

 {
  label: "China",
  data: [[2003, 1575],
   [2002, 1434],
   [2001, 1345],
   [2000, 1252],
   [1999, 1158],
   [1998, 1148]]
 },

 {
  label: "India",
  data: [[2003, 599],
   [2002, 510],
   [2001, 479],
   [2000, 457],
   [1999, 447],
   [1998, 414]]
 }]

1 个答案:

答案 0 :(得分:0)

你需要使用.split("\n")函数拆分你的行,你将得到这个数组

['year,USA,EU,UK,China,India',
'2003,10882,10970,1795,1575,599',
'2002,10383,9040,1564,1434,510',
'2001,10020,8303,1430,1345,479',
'2000,9762,8234,1438,1252,457',
'1999,9213,8901,1460,1158,447',
'1998,8720,8889,1423,1148,414']

现在,您再次在.split处迭代此数组,。你应该在做完之后得到这个:

[
    ['year','USA','EU','UK','China','India'],
    ['2003','10882','10970','1795','1575','599'],
    ['2002','10383','9040','1564','1434','510'],
    ['2001','10020','8303','1430','1345','479'],
    ['2000','9762','8234','1438','1252','457'],
    ['1999','9213','8901','1460','1158','447'],
    ['1998','8720','8889','1423','1148','414']
]

现在你所要做的就是在两级嵌套for循环中迭代它,并构建你想要的对象。