首页 > 解决方案 > Javascript - 从 csv 文件转换后访问数组中的数据

问题描述

我正在将一个 csv 文件导入到我转换为数组的项目中。我能够将我的数据作为一个数组取回,但由于它的结构,我很难访问其中的数据。

例如,当 console.logging 我的数组时,cardDataList我得到一个返回:

[…]
​
0: "State"
​
1: "202"
​
3: "129,491"
​

现在,我尝试使用这些数据附加到 HTML id,但我遇到了正确定位其中一个对象的问题。例如,如果我想使用0: "State"I am unable to附加到一个 id cardData[0].0。我也尝试过cardData[0].["name"],但返回未定义。我的预期结果是将每个对象作为目标,就好像它是一个 json 对象一样。

例如,如果数组是

[...]
Name: "State"

我可以通过做访问数据cardData[0].Name

这是我的代码:

function getCardData() {
    $.ajax({
        type: "get",
        url: cardData,
        async: true,
        success: function (data) {


        let cardDataList = [];
        let csvObjects = $.csv.toObjects(data);

        for (var i = 0; i < csvObjects.length; i++) {
            name = csvObjects[i]["StateName"];
            population = csvObjects[i]["Population"];
            business = csvObjects[i]["Businesses"];

            var arrCardListItem = [
                name,
                population,
                business,];

            cardDataList.push(arrCardListItem);

        }


        const urlStr= window.location.pathname;

        if (urlStr.includes('/state/')) {
            console.log(cardDataList[0])
        }

标签: javascriptarrayscsv

解决方案


如果您想像访问对象一样访问它,请让您的 cardDataList 成为一个对象数组。考虑:

var arr = []
var name = 'test'
var population = 'testpop'

var obj = {
    name, 
    population
}
arr.push(obj)
console.log(arr[0])
console.log(arr[0].name)

结果

Object
name: "test"
population: "testpop"
__proto__: Object
test

推荐阅读