JavaScript 数组值未定义?

标签 javascript arrays json

我目前正在开发一个 REST API/网站项目,其中我的 REST API 必须通过响应从服务器返回对象数组,并使用 GSON 从数据中生成 Json 数组。然而,当尝试从网站的 javascript 数组中获取值时,我总是遇到未定义的情况。这是数组:

var userArr =[
  {
    "0x1": {
      "firstName": "Test1",
      "lastName": "Test1",
      "hobbies": [
        {
          "id": 1,
          "name": "Fodbold",
          "people": [
            "0x1"
          ]
        }
      ],
      "id": 1,
      "address": {
        "id": 1,
        "street": "Street1",
        "cityInfo": {
          "id": 1,
          "zipCode": "0555",
          "city": "Scanning"
        },
        "infoList": [
          "0x1",
          "0x2"
        ]
      },
      "phones": [
        {
          "id": 1,
          "number": "123124",
          "info": "0x1"
        }
      ]
    }
];

当我尝试调用 userArr[0].firstName 时,收到一条错误消息,指出它未定义,即使数据在那里。这是来自 get 调用,这是我在 REST API 的 javascript 中执行的,它会发回这个特定的数组。我尝试循环遍历数组,其中包含多个对象,但是我根本无法检索任何信息。

最佳答案

您的userArr是一个没有firstName属性的对象数组。由于某种原因,它们只有一个名为 0x1 的属性。并且此 0x1 属性具有 firstName 属性。

您可以使用以下表示法访问 0x1 属性的 firstName:

userArr[0]["0x1"].firstName

这是工作演示:

var userArr = [{
  "0x1": {
    "firstName": "Test1",
    "lastName": "Test1",
    "hobbies": [{
      "id": 1,
      "name": "Fodbold",
      "people": [
        "0x1"
      ]
    }],
    "id": 1,
    "address": {
      "id": 1,
      "street": "Street1",
      "cityInfo": {
        "id": 1,
        "zipCode": "0555",
        "city": "Scanning"
      },
      "infoList": [
        "0x1",
        "0x2"
      ]
    },
    "phones": [{
      "id": 1,
      "number": "123124",
      "info": "0x1"
    }]
  }
}];

console.log(userArr[0]["0x1"].firstName);

顺便说一下,您的代码中数组末尾缺少一个右括号 }。

关于JavaScript 数组值未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42824846/

相关文章:

javascript - 为什么每次点击时数组都会重新初始化?

ios - 在 iPad 应用程序中显示来自 JSON 的数据表

javascript - 使用 Knockout 通过单击事件从 JSON 更新 View

javascript - 点悬停时显示错误的标签值 - Chart.JS

javascript - 如何在 JavaScript 中调用 "lexical this"或箭头语法?

javascript - jQuery.noConflict() 与其他库

javascript - 将数组对象移动到数组中

javascript - 本地文件的上次修改日期。 JavaScript

javascript - 什么是相当于 jQuery 的 .contents() 的 JavaScript?

java - 当我尝试从二维数组传递一行时出错