使用jQuery循环遍历列

时间:2015-09-03 05:01:55

标签: javascript jquery csv

我试图循环遍历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;
&#13;
&#13;

2 个答案:

答案 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];
    }
}