我一直在尝试使用此代码http://mounirmesselmeni.github.io/2012/11/20/javascript-csv/来从文本文件中获取数据。 (这里的工作演示:http://mounirmesselmeni.github.io/html-fileapi/)。
它适用于读取文件,但我对如何将数据放入数组感到困惑。好像它正在把所有东西都读成" line"数组,但我无法解决如何使用它。
我尝试像这样修改它:
function processData(csv) {
var allTextLines = csv.split(/\r\n|\n/);
var lines = [];
var myArray = [];
while (allTextLines.length) {
lines.push(allTextLines.shift().split(','));
myArray.push(allTextLines.shift().split(',')); //put data into myArray
}
function myFunction() { //display myArray in "demo"
var index;
for (index = 0; index < myArray.length; index++) {
text += myArray[index];
}
document.getElementById("demo").innerHTML = text;
}
但那并没有奏效。我知道我在这里错过了一些简单的东西,但这让我很难过。
答案 0 :(得分:1)
目前您修改了两次数组:
lines.push(allTextLines.shift().split(',')); // shift modifies the array
myArray.push(allTextLines.shift().split(',')); //gets the shifted array
你可能想尝试将它放在temp变量中:
var line = allTextLines.shift().split(',');
lines.push(line);
myArray.push(line);
答案 1 :(得分:0)
尝试
csv.split(/\r\n|\n|,/).map(function(value, index) {
demo.innerHTML += "\n" + value.trim()
});
var csv = 'Year,Make,Model,Description,Price'
+ '1997,Ford,E350,"ac, abs, moon",3000.00'
+ '1999,Chevy,"Venture ""Extended Edition""","",4900.00'
+ '1999,Chevy,"Venture ""Extended Edition, Very Large""",,5000.00'
+ '1996,Jeep,Grand Cherokee,"MUST SELL!'
+ 'air, moon roof, loaded",4799.00',
demo = document.getElementById("demo");
csv.split(/\r\n|\n|,/).map(function(value, index) {
demo.innerHTML += "\n" + value.trim()
})
<div id="demo"></div>