js多维对象数组的思考

  1. 云栖社区>
  2. 博客列表>
  3. 正文

js多维对象数组的思考

it徐胖子 2012-02-16 13:52:00 浏览356 评论0

摘要: 我们先来设想这样一个场景: 一个学校下面有很多班级,一个班级下面有很多学生。 学校和班级——1:n 班级和学生——1:n   为了简便起见,我们就不给三个实体分配过多属性了。   学校有如下属性:名称sname,位置address。

我们先来设想这样一个场景:

一个学校下面有很多班级,一个班级下面有很多学生。

学校和班级——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 数组由多个对象构成,构成对象的也可以是数组。

【云栖快讯】你想见的Java技术专家都在这了,向大佬提问,有问题必答  详情请点击

网友评论

it徐胖子
文章842篇 | 关注5
关注
Node.js 性能平台(Node.js Performance Platform)是面向中... 查看详情
提供海量、安全和高可靠的云存储服务。RESTful API的平台无关性,容量和处理能力的弹性... 查看详情
阿里巴巴自主研发的海量数据实时高并发在线分析云计算服务,使得您可以在毫秒级针对千亿级数据进行... 查看详情
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效... 查看详情
阿里云总监课正式启航

阿里云总监课正式启航