js多维对象数组的思考-阿里云开发者社区

开发者社区> it徐胖子> 正文

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
4133 0
c++多线程编程之互斥对象(锁)的使用之----死锁
一、死锁会在什么情况发生 1、假设有如下代码    mutex;   //代表一个全局互斥对象    void  A()       {           mutex.lock();           //这里操作共享数据           B();  //这里调用B方法           mutex.
1020 0
C#--异常对象和多catch块
可以自定义异常块如,catch (System.Exception myException),然后对myException进行访问,例如: 1 /* 2 Example13_2.cs illustrates the use of a 3 System.
462 0
Java入门 - 面向对象 - 03.多态
多态是同一个行为具有多个不同表现形式或形态的能力。 多态就是同一个接口,使用不同的实例而执行不同操作,如图所示
126 0
浅析多线程的对象锁和Class锁
一、前言 本来想在另外一篇文章说的,发现可能篇幅有点大,所以还是另开一篇博文来说好了。知识参考《Java多线程编程核心技术》,评价下这本书吧——大量的代码,简单的说明,真像在看博客。不过这本书浅显易懂,篇幅也不长,一口气看个几十页,再照着demo敲敲代码,简直不要太爽。
669 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
3580 0
+关注
it徐胖子
IT徐胖子
733
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载