从csv文件拆分

时间:2014-04-29 12:21:44

标签: javascript csv

我有一个这样的行的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);
}

但它并不像我想要的那样工作。我只想要一部分字符串而不是整行:

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

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

有可能吗?我怎么能这样拆分呢?已经尝试过一些东西,但我还没有找到一个好方法。

1 个答案:

答案 0 :(得分:2)

最简单的解决方案是这样的:

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

由于您只需要原始数据中的第2,第4和第5个元素。

但是,你可以这样更容易访问:

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";