Javascript:如何将XMLHTTPRequest中的csv数据保存在数组中

时间:2019-04-17 12:03:53

标签: javascript arrays xmlhttprequest

我尝试使用以下代码从csv文件中获取一些数据: (csv文件有几行,它们与表的不同行)

var newArray = []

function init() {
    var xhttp = new XMLHttpRequest();
    xhttp.onreadystatechange = function () {
        if (this.readyState == 4 && this.status == 200) {
            var lines = this.responseText.split("\n");
            newArray.push(lines)
        }
    }
    xhttp.open("GET", "CMDBsox.csv", true);
    xhttp.send();
}
window.onload = init;

console.log(array)

The csv file looks like this:
(I just noticed that the first element of each line is not in quotes " )

First line: Lorem1, "Lorem2", "Lorem3", "Lorem4",...
Second line: Ipsum1, "Ipsum2", "Ipsum3", "Ipsum4",...
and so on



我将'lines'数组推入名为newArray的新数组中。

现在我可以看到该数组,但是所有行都在另一个数组中,例如:

0:(21) [...]
0:["Sample1", "Sample2", "Sample3,...]
1:["Example1", "Example2", Example3",...]
2:["Test1", "Test2", "Test3",...]

以此类推...(21次)

我可以使用以下命令访问不同的数组(行)

"newArray[0][0]", "newArray[0][1]", "newArray[0][2]",...

但是现在我遇到了问题:

  1. 我可以通过控制台而不是代码来访问它们... 当我写newArray[0][1]时收到错误**"TypeError: array[0] is undefined"**. 但是在控制台中,我可以看到整个数组吗?

  2. 如何在数组内部创建新数组。例如,现在我在newArray[0][0]中有一个大字符串,但是我需要数组中的单个元素

  3. 我目前通过newArray[0][i]访问每条“行”,但是我想用newArray[i]..访问它们,如何将它们移到“ upper”数组中,这样我就不会没有用处第一个数组

谢谢:)

1 个答案:

答案 0 :(得分:0)

我不明白为什么您将问题转移到读取文件的问题上,而这只是另一个表的副本上的问题。
如果您希望得到好的答案,那么提出清晰的问题至关重要。

因此将数组推入数组是个坏主意,请使用Object.assign

var arr1 = [ 1,7 ,3 ,4 ,5];

var arr2 = [[]];


Object.assign (arr2[0], arr1)

console.log ('arr1 ...: ', JSON.stringify(arr1));
console.log ('arr2[0] : ', JSON.stringify(arr2[0]));