690
技術社區[雲棲]
js多維對象數組的思考
我們先來設想這樣一個場景:
一個學校下麵有很多班級,一個班級下麵有很多學生。
學校和班級——1:n
班級和學生——1:n
為了簡便起見,我們就不給三個實體分配過多屬性了。
學校有如下屬性:名稱sname,位置address。
班級有如下屬性:名稱cname,年級grade。
學生有如下屬性:姓名stuname,學號stunum。
那麼我們用js數組怎麼表達這樣一種關係?
// 定義學校對象
var school = {
sname:"一所大學",
address:"一個地方",
classes:[ ]
};
// 給學校數組添加班級
school.classes.push({
'cname':"一班",
'grade':"一年級"
students:[ ]
});
school.classes.push({
'cname':"二班",
'grade':"一年級"
students:[ ]
});
// 給班級數組添加學生
for(var m=0;m<school.classes.length;m++)
{
school.classes[m].students.push({
'stuname':"xy"+m,
'snum':m
});
}
// 取出班級數組
for(var m=0;m<school.classes.length;m++)
{
if(school.classes[m].cname=="一班")
{.......................................}
}
// 取出學生數組
for(var m=0;m<school.classes.length;m++)
{
for(var n =0;n<school.classes[m].students;n++)
{
if(school.classes[m].students[n].snum==1)
{.........................................................}
}
}
當然,真正賦值的時候,可以通過$.getJSON,從數據庫中取出,然後再賦值。
從這個例子中我們可以學些什麼呢?
1 { }表示一個json對象,是一對鍵值對。[ ]表示一個數組,可以由多個json對象構成一個數組。
2 js數組相當靈活。作為一種弱類型的語言,有些東西可以邊申明邊用。如上述的那些屬性。
3 數組由多個對象構成,構成對象的也可以是數組。
最後更新:2017-04-02 22:16:23