js数据存贮之数组与json
1 数组:var arr=new array()或者是var arr=[ ];其中arr是对象 可以定义var a=[],或者var b=[] 都可以
数组对象为[13,25,65,89] 如果我们要取出89这个数,那么 arr[3]就是89
数组是用下标来表示的,下标是从0开始;
假如我们有一个数组var a=[66,66,66,66],此时数组从a[0]到a[3],如果我们想添加一个数66,在不知道前面数组数量的情况下 假设我们写a[5]=66 则会显示a=[66,66,66,66,undined,66]
要想加在后面 我们可以用a.push(66) 就会变为a=[66,66,66,66,66,]
求和:var arr=[66,66,66,66,]
Var shu=0; For(a=0,a<=3,a++){ Shu=shu+arr[a] }
但是当数组数量特别多的情况下 我们不知道数量 没法计算循环次数,此时用到arr.length 这是是数组中的数量 并不是下标 所有数量-1才是下标
数组里面可以套数组 称为二维数组 例:
Var arr=[669,69,[25,23,56],89] 这就是二维数组
我们要是想取值23 a[2][1] 就是取出来23
练习题:给定一个数组 求它的最大值、平均值、求和 数组为[45,85,256,82,68,25,4752,21,62,542,51]
var shua=0; var shub=0; var sum=0; var c=0;//定义数组数量 var d=0;//定义平均值 //将数组存入 var arr=[45,85,256,82,68,25,4752,21,62,542,51]; for (a=0;a<arr.length;a++) { //将数组中的数赋值给shua shua=arr[a]; //记录循环次数 c++; //如果shua大于shub,则将shua的值给shub,从而保证 shub是最大值 if(shua>shub){ shub=shua; } //求和 sum+=shua; } //计算平均值 d=sum/c; document.write("最大值为"+shub); document.write("<br />"); document.write("求和为"+sum); document.write("<br />"); document.write("平均值为"+d);
2 json
json的两个重要属性为 key与值
基本格式为var a={key:值,key:值,key:值} 取出值的时候a[“key”]必须要加引号,key值用字符串形式:“key”
在json中用到一个循环遍历循环
var a ={ "li" : 1, "liu" : 2, "zhang" : 3, "wang" : 4, "5" : 5, "6" : 6 }; for(var b in a){ alert(a[b]); console.log(a[b]); }
这样就能将json中的数组都显示出来
json也可以套json 称为二维json 三维json
var a={ "yi":1, "er":2, "san":3, "si":{ "yi":11, "er":22, "san":33, "wu":{ "yi":111, "er":222, "san":333 } } } console.log(a["si"]["san"]);
这样输出的就是33
练习题:有三个年级
一年级:3个班
二年级:3个班
三年级:3个班
选择对应年级显示有那几个班,再选择某个班,显示有哪几个学生
把二年二班的同学打印出来
var nianji={ "yinianji":"一年级", "ernianji":"二年级", "sannianji":"三年级" } var banji={ "一年级":{ yiban:"一年级一班", erban:"一年级二班", sanban:"一年级三班" }, "二年级":{ yiban:"二年级一班", erban:"二年级二班", sanban:"二年级三班" }, "三年级":{ yiban:"三年级一班", erban:"三年级二班", sanban:"三年级三班" } } var xuesheng={ "一年级一班":{ xiaoming:"小明", xiaohong:"小红" }, "一年级二班":{ xiaoming:"小明", xiaohong:"小红" }, "一年级三班":{ xiaoming:"小明", xiaohong:"小红" }, "二年级一班":{ xiaoming:"小明", xiaohong:"小红" }, "二年级二班":{ xiaoming:"小明", xiaohong:"小红" }, "二年级三班":{ xiaoming:"小明", xiaohong:"小红" }, "三年级一班":{ xiaoming:"小明", xiaohong:"小红" }, "三年级二班":{ xiaoming:"小明", xiaohong:"小红" }, "三年级三班":{ xiaoming:"小明", xiaohong:"小红" } } console.log(xuesheng[banji[nianji["ernianji"]]["erban"]])