【问题标题】:Accessing items in fetched data访问获取的数据中的项目
【发布时间】:2018-02-22 04:22:53
【问题描述】:

我使用谷歌搜索地点 API 获取了一些数据。我可以访问返回的数据数组中的项目,但照片属性中的链接除外。我使用了以下方法,它适用于所有其他数据元素:

this.data.name、this.data.vicinity、this.data.icon 等,但 this.data.photos.html_attributions 返回未定义。我究竟做错了什么?有关数据结构,请参见下图。谢谢你的帮助。

【问题讨论】:

  • 嗨@Obisi7 如果有任何答案解决了您的问题,请点击复选标记考虑accepting it。这向更广泛的社区表明您已经找到了解决方案,并为回答者和您自己提供了一些声誉。没有义务这样做。

标签: javascript fetch


【解决方案1】:

在您的情况下,this.data 是一个数组。您应该按索引访问数组:

例如:

let firstItemName = this.data[0].name;

【讨论】:

    【解决方案2】:
    data[0].photos[0].html_attributions[0]
    

    如果您需要链接,那么您可能需要从 <a .. 解析 href

    【讨论】:

    • 这实际上是访问该数据的正确答案
    【解决方案3】:

    你要放入数组索引,例如:

    let var1 = this.data[0].photos[0].html_attributions[0];
    let var2 = this.data[1].photos[0].html_attributions[0];
    let var3 = this.data[2].photos[0].html_attributions[0];
    ...
    

    【讨论】:

    • 再次,我能够检索其他数据,例如this.data.name、this.data.icon 等没有任何错误。唯一的问题是获取作为照片数组中节点元素的 html_attributions。我也尝试过您的建议,但出现错误:“无法读取未定义的属性照片”
    • 这是一个措辞奇怪的错误......自从我使用 javascript 以来,我已经太久不知道这到底是什么意思了。听起来访问照片数组时出现问题。如果您尝试将某些内容设置为this.data[0].photos,您会收到错误消息吗?
    • 它只是不喜欢 this.data[0] 引用。正如我所指出的,当我使用 this.data.name 或 this.data.icon (每个结构)时,我会得到正确的数据并指示元素索引。但是当涉及到本身是数组的照片时,我无法使用 ...photos[0] 或直接 ...photos.html_attributions 获取其数组元素(html_attributions)。奇怪的。我已经编写了一个有效的正则表达式来正确解析
    • 很奇怪。您是否尝试过使用类似photos.firstChild 的方式访问它?或element.firstElementChild
    猜你喜欢
    • 2020-01-27
    • 2021-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-08
    相关资源
    最近更新 更多