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