我试图循环遍历csv文件的列和行,但只获取第一行结果。
这是我的csv布局2列,行
name total
subtitle1
name1 65%
name2 65%
name3 65%
name4 65%
total 60%
subtitle2
name1 65%
name2 65%
name3 65%
name4 65%
total 60%
subtitle3
name1 65%
name2 65%
name3 65%
name4 65%
total 60%
subtitle4
name1 65%
name2 65%
name3 65%
name4 65%
total 60%
$.ajax({
url: 'test.csv',
type: "GET",
dataType: "text",
contentType: "text/csv",
success: function (data) {
var columns = data.split(/\n/);
var column1 = columns[0].split(/\,/);
var column2 = columns[1].split(/\,/);
var data = {};
for(var i=0; i<column1.length; i++) {
data[column1[i].trim()] = column2[i].trim();
console.log(data);
}
}
});
&#13;
答案 0 :(得分:0)
在您的示例中,您已将文件拆分为columns
,实际上是行而非列,然后您将第一行和第二行行分解为两行列 - 第一行中的一行和第二行中的一列。
您应该首先按行划分,然后按行划分 - 按列拆分:
$.ajax({
url: 'test.csv',
type: "GET",
dataType: "text",
contentType: "text/csv",
success: function (data) {
// Splitting the file into rows
var rows = data.split(/\n/);
for (var rowIndex in rows)
{
// For every row - split it into columns
var columns = rows[rowIndex].split(/,/);
for (var colIndex in columns)
{
var colValue = columns[colIndex].trim();
// here you have the colValue to play with
console.log(colValue);
}
}
}
});
答案 1 :(得分:0)
你在错误的事情上循环。 data.split('\n')
会返回一系列行,但您不会循环遍历该行。
遍历所有行。在此循环中,将行拆分为空格(数据中没有逗号)。
var result = {};
var rows = data.split('\n');
for(var i = 0; i < rows.length; i++) {
var columns = rows[i].split(/\s+/);
if (columns.length > 1) { // skip the subtitle rows
result[columns[0]] = columns[1];
}
}