今天項目中碰到了這個問題,在網絡上試圖找了一下別人的見解,然后得出自己的淺見。
引用:
http://blog.sina.com.cn/s/blog_9342cd570102v3pr.html
https://segmentfault.com/q/1010000005710307/a-1020000005710886
------------------------------------------------------------------------------------------------------------------------
根據以上得知:
1 簡短的代碼段,先判斷再循環和先循環再判斷執行一千萬次的執行效率相差無幾
2 先判斷再循環的代碼維護不便並且代碼冗余
--------------------------------------------以下為代碼段和個人淺見--------------------------------------------
先判斷再循環:
1 if(type==1){ 2 for (var i = 0; i < item.length; i++) { 3 console.log(item[i].Aa) 4 } 5 }else if(type==2){ 6 for (var i = 0; i < item.length; i++) { 7 console.log(item[i].Bb) 8 } 9 }else if(type==3){ 10 for (var i = 0; i < item.length; i++) { 11 console.log(item[i].Cc) 12 } 13 }
先循環再判斷:
1 for (var i = 0; i < item.length; i++) { 2 if(type==1){ 3 console.log(item[i].Aa) 4 }else if(type==2){ 5 console.log(item[i].Bb) 6 }else if(type==3){ 7 console.log(item[i].Cc) 8 } 9 }
前者代碼冗余且維護不便,而后者代碼簡潔方便維護,在執行效率相差無幾的情況下,推薦使用后者
