尝试从 JS 上的 API 读取日期

我试图从我居住的城市获得假期,但每次我试图指定字段时,我都会得到未定义的语句。


function getHolidays() {

    fetch('https://api.calendario.com.br/?json=true&ano=2020&ibge=3550308&token=bHVjYXNsdm81M0BnbWFpbC5jb20maGFzaD03ODE3NDM2MA')

        .then(function (response) {

            return response.json()

        })

        .then(function (verify) {

            const test = verify

            console.log(test.date)

        })

}


console.log(getHolidays())


慕沐林林
浏览 127回答 3
3回答

弑天下

首先,该 API 返回一个对象数组。您可以使用 map 方法迭代数组,例如:const dates = verify.map(item => item.date);另外,重要的是要提到获取是一个承诺。如果要在函数外部访问其结果,则必须对其进行处理。getHolidaysfunction getHolidays() {    return fetch('https://api.calendario.com.br/?json=true&ano=2020&ibge=3550308&token=bHVjYXNsdm81M0BnbWFpbC5jb20maGFzaD03ODE3NDM2MA')        .then(function (response) {            return response.json()        })        .then(function (verify) {            return verify.map(item => item.date)        })}getHolidays().then(function (dates) {  console.log(dates);});

波斯汪

我认为你在承诺对象实现之前就回来了。例如,如果您要将第一个“返回”替换为另一个控制台日志,则可能会得到挂起的结果

汪汪一只猫

如前所述@EliasSoares,您正在尝试访问数组上的对象属性。您需要索引到某个对象中才能获取该属性(该属性是 )。date像这样的东西应该会有所帮助:function getHolidays() {&nbsp; fetch(&nbsp; &nbsp; &nbsp; "https://api.calendario.com.br/?json=true&ano=2020&ibge=3550308&token=bHVjYXNsdm81M0BnbWFpbC5jb20maGFzaD03ODE3NDM2MA"&nbsp; &nbsp; )&nbsp; &nbsp; .then(function(response) {&nbsp; &nbsp; &nbsp; return response.json();&nbsp; &nbsp; })&nbsp; &nbsp; .then(function(data) {&nbsp; &nbsp; &nbsp; console.log({ holidays: data });&nbsp; &nbsp; &nbsp; document.getElementById("results").innerHTML = `<h1>Results:</h1>${JSON.stringify(data, null, 2)}`;&nbsp; &nbsp; });}getHolidays()Open your console<pre id="results" />
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript