如何从多级数组中检索变量 - Vue.js

Posted

技术标签:

【中文标题】如何从多级数组中检索变量 - Vue.js【英文标题】:How to retrieve variable from multi-level array - Vue.js 【发布时间】:2021-12-27 19:45:33 【问题描述】:

我只是在 Vue.js 中做一个练习项目,我将循环浏览来自 NHL 的团队页面并输出每个球员的姓名。

我在这里有一个 API 端点; https://statsapi.web.nhl.com/api/v1/teams/21?expand=team.roster

我正在尝试穿越关卡,但在名册上“迷路”了。我可以输出整个花名册,但似乎无法深入挖掘。

我将整个 JSON 响应的内容存储在一个名为“hockeyData”的变量中。

这就是我用来输出花名册的东西(这可行)

 hockeyData[0].roster 

现在,当我尝试获取玩家姓名时,我正在这样做,但它不起作用

 hockeyData[0].roster.roster[0].person.fullName 

我确定这很简单,但尽我所能尝试我只是没有得到要输出的名称。

非常感谢任何帮助!

【问题讨论】:

你遇到了什么错误? 我收到一个控制台错误“TypeError: Cannot read properties of undefined (reading 'roster')” 只需添加逻辑语句this.hockeyData && this.hockeyData[0].roster.roster[0].person.fullNamethis.hockeyData[0]?.roster.roster[0].person.fullName 即可解决TypeError。这是因为在创建组件时, hockeyData 可能没有数据(因此在您的情况下它为 null 或未定义)。 【参考方案1】:

根据您的数据,这是一个有效的example on Codepen。

您尚未发布任何代码,因此我无法确定,但您的问题可能是时间问题。确保这些值在从模板请求时可用。

在我的示例中,我有一个v-if,用于检查数据是否可用(例如,我只检查名册是否可用,我应该检查所有孩子,但这是一个示例。 .).

    <div v-if="roster && roster.length">
        First:  roster[0].person.fullName 
    </div>

【讨论】:

以上是关于如何从多级数组中检索变量 - Vue.js的主要内容,如果未能解决你的问题,请参考以下文章

是否可以从 python 中的变量中检索 JSON 路径?

Vue.js:从 Firebase 存储中检索数据后如何异步加载模板?

如何从 DLL 中检索数组变量? (视觉 C++)

我们如何使用 vue js 从数据库中检索产品数量?

如何从DLL中检索数组变量? (Visual C ++)

如何在 vue js 中显示从 firebase 检索到的标题标签 <h1> </h1> 的数据?