Javascript Json属性只能在开发人员控制台中访问

Javascript Json属性只能在开发人员控制台中访问,javascript,html,Javascript,Html,感谢大家花时间阅读本文。我一直在拔头发,想弄明白为什么这不起作用 我试图获得一个JSON属性,但出于某种原因,它只能在开发人员控制台中工作 ID = 3039; oAuthToken = UStKiYs52uqHznMQNrbORyAAEcDH51kHF4; fetch(`https://us.api.blizzard.com/data/wow/item/${ID}?namespace=static-us&locale=en_US&access_token=${oAuthToke

感谢大家花时间阅读本文。我一直在拔头发,想弄明白为什么这不起作用

我试图获得一个JSON属性,但出于某种原因,它只能在开发人员控制台中工作

ID = 3039; oAuthToken = UStKiYs52uqHznMQNrbORyAAEcDH51kHF4;
fetch(`https://us.api.blizzard.com/data/wow/item/${ID}?namespace=static-us&locale=en_US&access_token=${oAuthToken}`)
            .then(response => response.json())
            .then(data => responseFromFetch = data)
            .then(newData => console.log(newData.preview_item.stats[0].display.display_string))
正如预期的那样,这将返回我正在寻找的属性“+16敏捷性”

但是,当我尝试在以下上下文中访问此属性时,它给了我一个错误:“无法读取未定义的属性“0”

依赖关系是否有问题

这很奇怪的一个原因是,我在第15行使用的路径是从控制台中的json响应得到的,我右键单击它以获得属性路径

如果有帮助的话,我附带了一个JSON响应的屏幕截图


这可能是用户错误,例如误读了记录在哪里的行。您显示的输出不包括表或statsArray日志。或者,您可能已经在chrome调试器中过滤掉了错误日志记录。如果一个键存在于一个地方,它不会在另一个地方神奇地消失,除非有人修改了对象,这是没有人修改过的。谢谢你,安迪,但是我已经进行了双重检查,我从开发人员控制台复制粘贴了对象路径,这两个代码段中的路径都是相同的。必须有其他事情发生:(您应该在
常量行之前记录
用户
的内容,并在那里进行检查
function getToolTipID() {
        let ID;
        let ID2;
        ID = (event.currentTarget.children[5].innerText.replace("ID: ", ""));
        ID2 = (event.currentTarget);
            console.log(ID);
            fetch(`https://us.api.blizzard.com/data/wow/item/${ID}?namespace=static-us&locale=en_US&access_token=${oAuthToken}`)
            .then(response => response.json())
            .then((user) => {
                console.log(user.inventory_type);
                let lineContent;
                let statsArray; 
                try {
                    statsArray = user.preview_item.stats[0].display.display_string
                    console.log(statsArray)
                } catch (error) {
                    console.log(error)
                }
                console.table(statsArray)
                const lines = [
                    `${user.name}`,
                    `${user.preview_item.level.value}`,
                   /* `${user.preview_item.binding.name}`, */
                    `${user.inventory_type.name}`,
                    `${user.item_subclass.name}`,
                    `${user.preview_item.weapon.damage.display_string}`,
                    `${user.preview_item.weapon.attack_speed.display_string}`,
                    `${user.preview_item.weapon.dps.display_string}`,
                /* ACCESSING VALUE HERE */ `${user.preview_item.stats[0].display.display_string}`, */
                    `${user.preview_item.durability.display_string}`,
                    `${user.required_level}`,
                    `${user.sell_price}`
                ] 
                lineContent = user.inventory_type.name;
                let node = document.createElement('tr');
                node.innerHTML = lines;
                
                document.getElementById("toolTipDisplay").appendChild(node);
            }); 

    }