亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 JS 中正確子集特定對象

如何在 JS 中正確子集特定對象

白衣染霜花 2023-08-18 14:26:20
我目前正在做一些練習,我想在此 api 上打印每部電影的標題:https://jsonmock.hackerrank.com/api/movies?Year=1998基本上,我希望每個標題都打印在第一頁(或者最好是特定頁面)。這是我的代碼:<script>function printTItles(year) {  var res;    xmlhttp = new XMLHttpRequest();  xmlhttp.onreadystatechange = function() {    if (this.readyState == 4 && this.status == 200) {      res = JSON.parse(this.responseText);            for(var i=0;i<res.per_page;i++){        document.getElementById("demo").innerHTML = res.data.i.Title;      }    };  }  xmlhttp.open("GET", "https://jsonmock.hackerrank.com/api/movies?Year=<year>", true);  xmlhttp.send();}</script>我知道問題出在res.data.i.title,但我不知道如何解決它。
查看完整描述

1 回答

?
12345678_0001

TA貢獻1802條經驗 獲得超5個贊

您正在嘗試訪問循環中索引處的元素i,就像訪問對象的屬性一樣。i要獲取數組中位置的元素res.data,您需要方括號訪問[ ]


此外,您不會將year請求中的參數替換為year傳遞給函數的參數。您可能想檢查一下。


這里我以年份2018為例。


function printTItles(year) {

  var res;

  

  xmlhttp = new XMLHttpRequest();

  xmlhttp.onreadystatechange = function() {

    if (this.readyState == 4 && this.status == 200) {

      res = JSON.parse(this.responseText);

      

      for(var i=0;i<res.per_page;i++){

         document.getElementById("demo").innerHTML = res.data[i].Title;

      }

    };

  }

  xmlhttp.open("GET", "https://jsonmock.hackerrank.com/api/movies?Year=2018", true);

  xmlhttp.send();

}


printTItles();

<div id="demo"></div>

您可以添加更多改進。例如,在每次迭代中,您都會替換#demo元素的內容。這會導致僅顯示最后一個標題。相反,您可以將數據附加到 div 的現有 html 中?;蛘?,就像我在本例中所做的那樣,在將字符串設置為新值之前構建字符串innerHTML。


function printTItles(year) {

  var res;

  

  xmlhttp = new XMLHttpRequest();

  xmlhttp.onreadystatechange = function() {

    if (this.readyState == 4 && this.status == 200) {

      res = JSON.parse(this.responseText);

      

      var output = "";

      for(var i=0;i<res.per_page;i++){

        if(res.data[i]) {

          output += res.data[i].Title + '<br />';

        }

      }

      

       document.getElementById("demo").innerHTML = output;

    };

  }

  xmlhttp.open("GET", "https://jsonmock.hackerrank.com/api/movies?Year=2018", true);

  xmlhttp.send();

}


printTItles();

<div id="demo"></div>

我還添加了一個條件來檢查 處是否存在元素res.data[i]。



查看完整回答
反對 回復 2023-08-18
  • 1 回答
  • 0 關注
  • 136 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號