我有这样一行的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


可能吗?我该如何拆分?已经尝试了一些方法,但是我还没有找到一种好的方法。

最佳答案

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

while (allTextLines.length) {
    var line = allTextLines.shift().split(',');
    lines.push([line[1], line[3], line[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

或者,如果只想将这三个“元素”作为字符串:

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

09-30 16:08
查看更多