2016-12-29 92 views
0

我已經寫了三個for循環用於在屏幕上使用JavaScript顯示數據。我怎樣才能簡化下面的代碼?如何簡化嵌套的JavaScript循環

我的JSON格式:

{ 
     "result": { 
      "type": "SUCCESS", 
      "data": [{   
       "monthName": "July", 
       "monthId": 7, 
       "weeks": [{    
        "days": [{     
         "day": "Sunday", 
         "date": "07/31/2016" 
        }],    
       }], 
      }], 
     } 
    } 
var monthObj = response.result.data; 

for (var i = 0; i < monthObj.length; i++) { 
    for (var t = 0; t < monthObj[i].weeks.length; t++) { 
    for (var s = 0; s < monthObj[i].weeks[t].days.length; s++) { 
    } 
    }  
} 

這是我的循環,在這裏我已經寫了3圈。
有沒有簡單的方法來簡化這些循環?

+0

你能還添加顯示數據的代碼? –

+1

你爲什麼想象它可能是可以簡化的?你想如何簡化它?是否有某些原因,您沒有將for-loop標籤添加到此問題中? – 2016-12-29 12:09:28

+0

我已經寫了3 for循環,我懷疑這是可能的一切寫入循環。 –

回答

2

這取決於你的數據是怎樣的以及你想要在循環中做什麼。如果您希望monthweekday有多個條目,並且您希望對它們執行一些操作,則需要三個循環。

我推薦使用的forEach代替for雖然:

const data = { 
 
    "result": { 
 
    "type": "SUCCESS", 
 
    "data": [{ 
 
     "monthName": "July", 
 
     "monthId": 7, 
 
     "weeks": [{ 
 
     "days": [{ 
 
      "day": "Sunday", 
 
      "date": "07/31/2016" 
 
     }], 
 
     }], 
 
    }], 
 
    } 
 
} 
 

 
data.result.data.forEach(month => { 
 
    month.weeks.forEach(week => { 
 
    week.days.forEach(day => console.log(day)) 
 
    }) 
 
})