我有一个这样的行的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
有可能吗?我怎么能这样拆分呢?已经尝试过一些东西,但我还没有找到一个好方法。
答案 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";