2010-09-09 5 views
0

J'essaye de convertir des données de CSV en données de tableau d'éplucher, mais je suis totalement nouveau au javascript, et je ne sais pas comment le faire maintenant. Est-ce que quelqu'un a une idée? Merci d'avance!Comment convertir les données CSV en données de tableau d'association en utilisant javascript?

données 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 

données du tableau de l'objet:

[{ 
    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

Faut-il être Javascript? Pouvez-vous utiliser une langue côté serveur? –

Répondre

0

Vous devez diviser vos lignes en utilisant la fonction .split("\n"), avec elle, vous obtiendrez ce tableau

['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'] 

Maintenant, vous réitérer ce tableau .split à ,. Vous devriez obtenir cette après l'avoir fait:

[ 
    ['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'] 
] 

Maintenant, tout ce que vous avez à faire est de itérer sur cela dans un deux niveaux imbriqués pour la boucle, et de construire l'objet que vous voulez sortir.

+0

Merci beaucoup! Pourriez-vous me donner un exemple montrant comment le faire en général? – Mengfei

+0

De rien :) Essayez d'essayer en utilisant la fonction [split] (http://www.w3schools.com/jsref/jsref_split.asp), et testez les deux choses en boucle si quelque chose échoue ou que vous ne pouvait pas faire, vous pouvez poser des questions à ce sujet. – aularon

Questions connexes