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

目录
相关文章
|
14天前
|
JavaScript
js【详解】arr.reduce() 数组缩减
【7月更文挑战第12天】
15 1
|
20天前
|
JavaScript API
js【最佳实践】遍历数组的八种方法(含数组遍历 API 的对比)for,forEach,for of,map,filter,reduce,every,some
js【最佳实践】遍历数组的八种方法(含数组遍历 API 的对比)for,forEach,for of,map,filter,reduce,every,some
29 1
|
24天前
|
JavaScript 前端开发 网络架构
JavaScript编码之路【对象的增强、ES6新特性之函数的默认值设置 、rest参数 (剩余参数)、拓展运算符、对象与数组的解构赋值】
JavaScript编码之路【对象的增强、ES6新特性之函数的默认值设置 、rest参数 (剩余参数)、拓展运算符、对象与数组的解构赋值】
29 1
|
24天前
|
JavaScript 前端开发 索引
JavaScript编码之路 【JavaScript之操作数组、字符串方法汇总】(三)
JavaScript编码之路 【JavaScript之操作数组、字符串方法汇总】(三)
24 1
|
20天前
|
JavaScript
JS【数组】交集、差集、补集、并集
JS【数组】交集、差集、补集、并集
11 0
|
21天前
|
JavaScript
JS 【详解】双指针排序 -- 数组合并后递增排序
JS 【详解】双指针排序 -- 数组合并后递增排序
10 0
|
21天前
|
JavaScript API 索引
JS【详解】Set 集合 (含 Set 集合和 Array 数组的区别,Set 的 API,Set 与 Array 的性能对比,Set 的应用场景)
JS【详解】Set 集合 (含 Set 集合和 Array 数组的区别,Set 的 API,Set 与 Array 的性能对比,Set 的应用场景)
31 0
|
21天前
|
JavaScript 索引
js 类数组 转 数组
js 类数组 转 数组
19 0
|
22天前
|
JavaScript
JS数组操作---删除,arr.pop()方法从数组中删除最后一个元素,并返回该元素的值,arr.shift() 删除第一个值,arr.splice()方法,删除指定元素,arr.splice,从第一
JS数组操作---删除,arr.pop()方法从数组中删除最后一个元素,并返回该元素的值,arr.shift() 删除第一个值,arr.splice()方法,删除指定元素,arr.splice,从第一
|
22天前
|
JavaScript
Js,定义数组的方法,let 数组名 = [数据1,数据2,........,数据n],取值方法,数组名[x],arr[0],let sum sum = sum + arr[0],求和的写法,平均值
Js,定义数组的方法,let 数组名 = [数据1,数据2,........,数据n],取值方法,数组名[x],arr[0],let sum sum = sum + arr[0],求和的写法,平均值