Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 访问对象中数组中的数据_Javascript_Arrays_Object - Fatal编程技术网

Javascript 访问对象中数组中的数据

Javascript 访问对象中数组中的数据,javascript,arrays,object,Javascript,Arrays,Object,我试图从对象中的数组访问数据,如下面的代码所示。我可以访问maintemp正常,但不能访问weathermain。请让我知道我做错了什么。多谢各位 请参阅数据图像的链接 let long; let lat; let temperatureDescription = document.querySelector(".temperature-description"); let temperatureDegree = document.querySelector(".t

我试图从对象中的数组访问数据,如下面的代码所示。我可以访问
main
temp
正常,但不能访问
weather
main
。请让我知道我做错了什么。多谢各位

请参阅数据图像的链接

let long;
let lat;
let temperatureDescription = document.querySelector(".temperature-description");
let temperatureDegree = document.querySelector(".temperature-degree");
let locationTimezone = document.querySelector(".location-timezone");

window.addEventListener("load", () => {
    let long;
    let lat;

    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(position => {
            lon = position.coords.longitude;
            lat = position.coords.latitude;
            const proxy = "https://cors-anywhere.herokuapp.com/"
            const api = `${proxy}api.openweathermap.org/data/2.5/weather?lat=${lat}&lon=${lon}&appid=d8c99fa56f1fcaaed3c5c9dd0cd52b72`
            fetch(api)
                .then(response =>{
                return response.json();
                })
                .then(data => {
                console.log(data);
                const {temp} = data.main;
                const {main} = data.weather[0].main;
                // set DOM Elements from the API
                temperatureDegree.textContent = temp;
                temperatureDescription.textContent = main;
            });
        });
    } 
});

尝试将行更改为

const main=data.weather[0]。main

const{main}=data.weather[0]


您所做的操作相当于访问未定义的
data.weather[0].main.main
。下面是javascript中的参考页,可以帮助解释如何使用它。

也许这会对您有所帮助

main = {
    "weather": [
            {
                "id": 803,
                "main": "clouds",
                "description": "broken clouds",
                "icon": "04n"
            }
        ]
}

console.log(main["weather"][0]["main"])

打印:
“云”

您不能访问是什么意思?你有什么错误吗?我看到你有一行
console.log(data)它的输出是什么?看到要提取的字段了吗?可能是您的数据没有这些字段……您能将链接转换为文本吗?@PayamV是的,我得到的数据与链接中的数据相同(访问代码正下方的数据),因为我可以确定它有这些字段。@periplo。没有错误,我的页面上没有显示任何内容。