我已经阅读了之前写的所有答案,但没有一个能解决我的问题。
从异步调用构建关联数组后,我将其传递给用于构建html元素的函数。关联数组已赋值,但是当我尝试访问它们时,它们返回undefined。
以下是登录到控制台的代码:
var buildStreamerHtml = function(thisNameInfo){
console.log("buildHtml: ");
console.log(thisNameInfo);
console.log("status[]: " + thisNameInfo['status']);
console.log("status.: " + thisNameInfo.status);
这是控制台日志:
buildHtml:
Object
logo: "https://static-cdn.jtvnw.net/jtv_user_pictures/freecodecamp-profile_image-d9514f2df0962329-300x300.png"
status: "Offline"
title: "FreeCodeCamp"
url: "https://www.twitch.tv/freecodecamp"
userExist: "yes"
__proto__: Object
status[]: undefined
status.: undefined
当我尝试访问时,thisNameInfo数组中的每个键(logo,status,title,url和userExist)都会返回undefined。
我做错了什么?如何访问键值?
之前的答案之一建议访问如下: 的 thisNameInfo [0] .STATUS 我已经尝试了它并且它给出了一个错误,因为thisNameInfo没有定义为数组。
这是数组在开始时的初始化方式:
var thisNameInfo = {};
这是分配值的代码的一部分。密钥是同时创建的。
return $.getJSON("https://wind-bow.glitch.me/twitch-api/channels/" + name,
function(dataChannel) {
thisNameInfo.url = dataChannel.url;
thisNameInfo.title = dataChannel.display_name;
thisNameInfo.logo = dataChannel.logo;
});
以下是根据Bergi建议complete code的链接: