拆分

2014-04-29 35 views
1

我有一個CSV文件蒙山這種線:拆分

1,紐約市,8175133,40.71455,-74.007124

2,洛杉磯市,3792621,34.05349,-118.245323

我在做這個方法把它分解:

function processData(csv) { 
    var allTextLines = csv.split(/\r\n|\n/); 
    var lines = []; 
    while (allTextLines.length) { 
     lines.push(allTextLines.shift().split(',')); 
    } 
    console.log(lines); 
    drawOutput(lines); 
} 

但它並不像我所希望的方式工作。我想只是一個字符串的一部分,而不是整個TEH行:

lines[0] = New York City, 40.71455, -74.007124 

lines[1] = Los Angeles city, 34.05349, -118.245323 

這可能嗎?我該如何分割它?已經嘗試了一些東西,但我還沒有找到一個好方法來做到這一點。

回答

2

最簡單的解決辦法是這樣的:

while (allTextLines.length) { 
    var line = allTextLines.shift().split(','); 
    lines.push([line[1], line[3], line[4]]); 
} 

既然你只想要第2,第4和從原始數據第五元素。

但是,你可以更容易一點像這樣訪問:

lines.push({city: line[1], lat: line[3], lon: line[4]}); 

這將導致類似:

lines[0] === {city: "New York City", lat: 40.71455, lon: -74.007124} 
lines[1] === {city: "Los Angeles city", lat: 34.05349, lon: -118.245323} 

這意味着你可以只使用:lines[0].city

或者,如果你想只是那些3 「元素」 作爲一個字符串:

lines.push(line[1] + ', ' + line[3] + ', ' + line[4]); 

,導致:

lines[0] === "New York City, 40.71455, -74.007124"; 
lines[1] === "Los Angeles city, 34.05349, -118.245323"; 
+0

工作就像一個魅力。謝謝。將回到6接受 – heisenberg

+0

@heisenberg:非常好,謝謝!你確實需要我給出的第一個建議,還是其他2個? – Cerbrus

+1

第一個就足夠了,因爲我永遠不會顯示數據,我只是用它來指向谷歌地圖中的位置 – heisenberg