2010-09-09 60 views
0

我试图将CSV数据转换为配对数组数据,但我完全不熟悉javascript,而现在我不知道该怎么做。有没有人有一些想法? 在此先感谢!如何将CSV数据转换为使用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]] 
}] 
+0

它需要成为Javascript吗?你可以使用服务器端语言吗? – 2010-09-09 07:55:29

回答

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循环两个层面,构筑你想出来的对象。

+0

非常感谢!你能举一个例子来说明如何做到这一点吗? – Mengfei 2010-09-09 08:15:25

+0

不客气:)试着用[split](http://www.w3schools.com/jsref/jsref_split.asp)函数给它一个镜头,并测试两个嵌套循环的东西,如果失败或者你做不到,你可以问一下。 – aularon 2010-09-09 08:25:46