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"]])

 

posted @ 2018-10-19 16:44  张宗强1  阅读(1272)  评论(0编辑  收藏  举报