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

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

ForLoop 只調用函數一次

ForLoop 只調用函數一次

烙印99 2023-03-03 19:35:04
我有一個 fourLoop 調用我的函數 addMarker,但我只得到一個循環的結果。我嵌套在循環中的控制臺日志返回正確的數組長度。我對這個問題很好奇,因為我懷疑我對某些概念缺乏關注。這是針對 Google 地圖、地點和地理編碼 API 的(為了安全起見,我刪除了我的密鑰,因此如果您只是通讀 initMap 函數,所有相關問題都在該范圍內)。更新:我記錄了“loopData”,我得到了正確的迭代次數,但它只是來自最后一個索引的數據。這讓我指向了 forLoop 中的錯誤,我在其中解析了來自 Google 的初始響應地點 API。那里的代碼是這個塊:(以下代碼塊的目的是迭代對象數組,并在每次迭代時獲取某些值,并將這些值推送到收集對象的新數組“placesDataLocations”。對現在我得到了正確數量的對象,但每個對象都與我的 API 響應數據的最后一個合格對象具有完全相同的值。)const gym = {}const placesDataLocations = []for (let i = 0; i < placesData.results.length; i++) {  if (placesData.results[i].business_status === 'OPERATIONAL') {    // Array of Objects in form {gym: {id: 10, quantity: 10} }    gym.location = placesData.results[i].geometry.location    gym.name = placesData.results[i].name    gym.address = placesData.results[i].vicinity    placesDataLocations.push({ gym: gym })  }}console.log(placesDataLocations)initMap(googleGeocodeLat, googleGeocodeLng, placesDataLocations)})初始 API 響應數據如下所示:
查看完整描述

1 回答

?
慕容3067478

TA貢獻1773條經驗 獲得超3個贊

您在每次迭代中都覆蓋了同一個對象,并將該同一個對象推送到您的數組中。你需要一個全新的對象。


const placesDataLocations = []


for (let i = 0; i < placesData.results.length; i++) {

  if (placesData.results[i].business_status === 'OPERATIONAL') {

    // Array of Objects in form {gym: {id: 10, quantity: 10} }

    const gym = {

      location: placesData.results[i].geometry.location,

      name: placesData.results[i].name,

      address: placesData.results[i].vicinity

    }

    placesDataLocations.push({ gym: gym })

  }

}

如果你想使用地圖,你還必須使用過濾器循環。


const placesDataLocations = placesData.results

  .filter(function (result) {

    return result.business_status === 'OPERATIONAL';

  }).map( function(result) {

    return { 

      gym: {

        location: result.geometry.location,

        name: result.name,

        address: result.vicinity

      }

    }

  });


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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