今天我們寫乙個關於處理多層for迴圈的問題,其實這個嚴格來說不是多層迴圈的問題,他的本質其實是對json資料格式的處理,很多時候啊我們的資料格式是這樣的
資料格式:
var timelinelist=[, , , ]
},, , , ]
},, , , ]
},, , , ]
},, , , ]
}]
是吧,其實這樣的資料是乙個兩層的資料,我在之前的部落格裡面寫過,我說這種格式的資料其實是很常見的,但是今天為什麼名字是處理多層for迴圈的問題呢?因為一般情況下這樣的資料我們只要最內層的資料,也就是說後端將資料給我們,我們其實需要的只是最內層的那些資料,那麼這樣的話我們其實只需要將資料直接遍歷就行了,不涉及多層迴圈取資料,但是我這裡寫的是要將資料展示成這樣的形式:
如果你們仔細看資料的時候會發現這個資料是怎麼展示的,他是將每一層的title作為乙個遍歷的物件,然後裡面的每一層的裡面的資料又是一次遍歷,這樣的資料怎麼處理呢?今天我們寫五種辦法處理:
分析一波
沒寫之前我們首先分析一下這樣的資料我們拿到以後應該以一種什麼樣的思路來處理。首先我們拿到資料第一步是看資料的特點,其實不管什麼資料,只要是資料庫建立的,他的資料都是有一定規律的,因為不可能說資料全是隨機數生成的吧,那麼資料庫的資料怎麼維護呢?是不是,特別是json格式的資料,既然是處理遍歷,我們首先要知道陣列的長度,那麼他是兩層的資料,我們拿那一層的長度呢?記住乙個準則,分析問題的時候,由外往內分析,意思是先看最外層的長度,這人力說一下原因,因為其實迴圈的原理我們都知道,他是將滿足條件的第一層全部走完,才會走第二層,舉個最簡單的例子:9*9乘法表,我們下面寫一下:
for( var i=1;i<=9;i++)
document.write("
") }
我們可以看到,他是走完i=1的迴圈才會接著走i=2的情況,可能有人說這不是廢話嗎?是的,但是很多人理解這句話,就是不會用他的原理處理多層資料的問題,到這裡其實我們就明白了,資料出來以後他是先走完最外層的第乙個滿足條件的資料,下面我畫乙個:
哈哈,畫的太差,只是為了讓你們可以看的明白,這裡說一下,第乙個條件不執行結束,迴圈是不會執行條件2的,那麼這樣的話,我們內層迴圈的時候可以直接寫迴圈,不會影響外層的條件2,所以說json多層資料獲取的問題就知道怎麼處理,下面寫**。
for迴圈最常規的寫法是下面是這樣的:
$(document).ready(function()
}});
還有很多人喜歡這樣寫:
$(document).ready(function()}})
用foreach迴圈也是一樣可以實現的:
$(document).ready(function())
}) })
還有一種不是很常規的寫法:
$(document).ready(function())
})})
那麼其實es6還有一種新的寫法:
$(document).ready(function()}})
ok,到這裡怎麼處理這種情況的資料相信你們應該是可以有點思路了,下面我說一下用jquery+ajax將後端的這些json拿到:
$.ajax(}}
},error : function(data)
});
其實我在之前是寫過關於ajax處理資料的博文的,感興趣的可以翻一下!
下面是全部原始碼:
鄙人能力有限,寫的可能**是有問題的,但是寫過的**都是我測試的,目前沒有發現什麼問題,如果您有更好的處理辦法或者有更好的寫法,可以隨時聯絡我,一起交流。 JSONObject 解析多層json資料
多層巢狀時,只需要解析多層巢狀次數 1,解析完成後可直接取出資料。相同資料需要使用for迴圈。jsonarray是陣列,jsonobject是單條資料。jsonobject jsonobject new jsonobject responsetext jsonobject jsonobject1 j...
jQuery遍歷多層json資料
jquery遍歷多層json資料,根據傳入的key,返回相應資料。test jsondata var jsondata jquery遍歷多層json資料,根據傳入的key,返回相應資料。param jsondata 資料來源 param name 上層keyname。param primarykey...
Java 多層巢狀JSON型別資料解析
簡單來說 key value 此時value為string key 0 此時value為int key 此時value為jsonobject key v 此時value為jsonarray 以下舉例資料結構 解析 public class test jsonobject jsonobject jso...