我不知道如何在$ scope.fileContent(我从我的CSV文件中得到它)中转换我的字符串数据。我打印了我的$ scope.fileContent:
console.log($ scope.fileContent)=
heading1,heading2,heading3,heading4,heading5
value1_1,value2_1,value3_1,value4_1,value5_1
value1_2,value2_2,value3_2,value4_2,value5_2
但我想要一个函数将它转换为这样的数组:
[
{ heading1:"value1_1",heading2:"value2_1",heading3:"value3_1",heading4:"value4_1",heading5:"value5_1" }
{ heading1:"value1_2",heading2:"value2_2",heading3:"value3_2",heading4:"value4_2",heading5:"value5_2" }
]
如何在Angularjs中实现它的任何想法?
我看到了一些例子,但我没有接受,我想最让人感到的是this.
答案 0 :(得分:1)
使用CSV解析库可能是最好的。我之前使用过Papa Parse,效果很好。但是,如果你想自己做...
function csvToArray(csvString) {
var lines = csvString.split('\n');
var headerValues = lines[0].split(',');
var dataValues = lines.splice(1).map(function (dataLine) { return dataLine.split(','); });
return dataValues.map(function (rowValues) {
var row = {};
headerValues.forEach(function (headerValue, index) {
row[headerValue] = (index < rowValues.length) ? rowValues[index] : null;
});
return row;
});
}
var x = "heading1,heading2,heading3,heading4,heading5\nvalue1_1,value2_1,value3_1,value4_1,value5_1\nvalue1_2,value2_2,value3_2,value4_2,value5_2";
console.log(csvToArray(x));
// OUTPUT
// [ { heading1: 'value1_1',
// heading2: 'value2_1',
// heading3: 'value3_1',
// heading4: 'value4_1',
// heading5: 'value5_1' },
// { heading1: 'value1_2',
// heading2: 'value2_2',
// heading3: 'value3_2',
// heading4: 'value4_2',
// heading5: 'value5_2' } ]