閱讀690 返回首頁    go 技術社區[雲棲]


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

  上一篇:go jQuery.data()方法
  下一篇:go 中國天氣預報城市代碼