从文本中获取数组

时间:2015-01-18 15:19:43

标签: javascript arrays filereader

我一直在尝试使用此代码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;
}

但那并没有奏效。我知道我在这里错过了一些简单的东西,但这让我很难过。

2 个答案:

答案 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>