2017-02-27 53 views
-2

我想弄清楚通過數組循環的好方法,到目前爲止,我只能弄清楚如何一次完成一個。我假設我需要做一個forEach聲明,但不完全知道如何說出聲明。你們中的任何一個碰巧知道這樣做的好方法嗎?什麼是循環API的好方法?

下面是一個API密鑰我的Node.js應用程序文件刪除

request("https://api.sportradar.us/ncaamb-t3/games/" + yyyy + "/" + mm + "/" + dd + "/schedule.json?api_key=", function(error, response, body){ 
    if(!error && response.statusCode == 200){ 
     var data = JSON.parse(body); 
    T.post('statuses/update', { status: (data["games"][6]["home"]["name"]) + " Vs " + (data["games"][6]["away"]["name"]) }, function(err, data, response) { 
    console.log(data); 
}); 
     } 
    }); 

下面是我通過努力循環數組的一個例子:

遊戲:

[ { id: 'f46c9795-a8f1-4ca3-8960-3788fb6a37c5', 
     status: 'scheduled', 
     coverage: 'extended_boxscore', 
     scheduled: '2017-02-28T00:00:00+00:00', 
     conference_game: true, 
     venue: [Object], 
     broadcast: [Object], 
     home: [Object], 
     away: [Object] }, 
    { id: '0e93d1d1-2d57-4524-b95f-d9d1b133b95f', 
     status: 'scheduled', 
     coverage: 'full', 
     scheduled: '2017-02-28T00:00:00+00:00', 
     conference_game: true, 
     venue: [Object], 
     broadcast: [Object], 
     home: [Object], 
     away: [Object] }, 
    { id: '7eb44074-4656-489a-976d-abfcbd669a7c', 
     status: 'scheduled', 
     coverage: 'extended_boxscore', 
     scheduled: '2017-02-28T00:00:00+00:00', 
     conference_game: true, 
     venue: [Object], 
     home: [Object], 
     away: [Object] }, 
    { id: '76fed39a-f931-4243-885d-86b14da93e4a', 
     title: 'Atlantic Sun - Quarterfinal 3', 
     status: 'scheduled', 
     coverage: 'full', 
     scheduled: '2017-02-28T00:00:00+00:00', 
     conference_game: false, 
     venue: [Object], 
     broadcast: [Object], 
     home: [Object], 
     away: [Object] }, 

正如你所看到的,我爲主客場球隊輸入了一個數字[6],因爲這是它似乎爲我工作的唯一方式,否則它會給我一個錯誤,因爲如果我只是寫一個對象它像這樣(data["games"]["home"]["name"])有什麼建議嗎?

+1

也許你應該表明什麼是主客場。 – baao

+0

@baao它只是團隊的名字 – Branduo

+0

不,它不是,它是一個對象 – baao

回答

0

,以便爲您的意見,只是通過遊戲循環,並顯示客隊防範主隊,下面的工作:

data.games.forEach(v => { 
    console.log("home team: " + v.home.name, "away team: " + v.away.name); 
}); 

當然你也可以使用相同的循環來發布多個狀態更新到twitter ...

我不知道的Twitter API,不知道是否有可能在一次通話中發佈多個更新,但只需發佈多次,你可以使用它:

data.games.forEach(v => { 
    T.post('statuses/update', { status: v.home.name + " VS " + v.away.name }, 
     function(err, data, response) { 
      // ... handle the response as you like 
     } 
}); 

data.games.forEach((v,i) => { 
    setTimeout(() => { 
     T.post('statuses/update', { status: v.home.name + " VS " + v.away.name }, 
      function(err, data, response) { 
       // ... handle the response as you like 
      }); 
    }, i * 20000); 
}); 
+0

非常感謝,這工作,你能解釋這個細分市場,我做錯了什麼?或者,也許發佈一個很好的資源讓我看看幫助?如果不是那麼酷,謝謝你的幫助! – Branduo

+0

那麼它基本上只是一個forEach循環,你可以在這裏閱讀更多關於它的信息(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach)。循環中的'v'是對象 - home,away(和home.name)等是對象的屬性。作爲迴應的是一系列對象,當你在Google上搜索對象數組時,可以找到相當多的信息 - 這裏還有一些關於這個問題的問答。 @Branduo – baao

+0

P.S.你可以通過它的索引來訪問某個數組元素(這就是你對data.games [6]所做的事情 - 或者你可以循環遍歷整個數組,就像我在答案中一樣@Branduo – baao

相關問題