数组的理解

  • 数组用来描述一组事物,比如:如果使用对象来描述一本书,那么我们可以使用数组来描述整个图书馆;我们使用对象来描述一个学生的话,那么可以用数组描述一个班级的学生
  • 数组可以在一个变量名称中存储一系列有序的数据

【案例】我们描述一个人的信息,并输出到控制台

//用4个变量描述一组信息
var name = '章子怡';
var age = 34;
var addr = "中国 北京";
var gender = "女"
console.log(name);
console.log(age);
console.log(addr);
console.log(gender);

//用一个数组描述,只消耗一个变量名称
var zzy_info = ['章子怡',34,"中国 北京","女"]
console.log(zzy_info);

数组的定义

直接量语法

用直接量语法创建并且初始化(如上面例子),下面定义一个名为personInfo的数组

  • 使用[]声明数组
  • 数组中可以放各种类型的数据:string、number、boolean、数组、对象
var personInfo = ['章子怡'34'女','中国 上海'];

然后可通过 数组名[下标值]获取单个值,下标值从0开始计数

var a = personInfo[0];    //a的值为:"章子怡"
var b = personInfo[1];    //b的值为:34
var c = personInfo[2];    //c的值为:"女"
var d = personInfo[3];    //d的值为:"中国 上海"

与对象一样,数组是数值的集合,不同的是对象中每个数值都有一个名字,可以用名字获取对应的值,而数组的每个数值都有一个下标值,用 数组名[下标值]

向数组赋值
personInfo[0] = '刘亦菲';
personInfo[1] = 30;
personInfo[3] = '中国 北京';

console.log(personInfo);   //此时的输出变成:['刘亦菲',34,'女','中国 北京']

修改已有数组中的值

如需修改已有数组中的值,只要向指定下标号添加一个新值即可:

myClass[0]=person_ck;

现在,以上代码:

alert(myClass[0].name)

将输出:

"陈坤"

数组的长度

lenght属性可以设置或返回数组元素的数目,length属性的值总是比数组定义的最后一个元素的索引值大1

语法
arryObject.length
实例
var arr = new Array(3);
arr[0] = "章子怡";
arr[1] = "陈坤";
arr[2] = "赵薇";
console.log("Original length:"+arr.length);
arr.length = 5;
console.log("New length"+arr.length);

二维数组

  • 数组中的每一个元素又是一个数组
  • 用行列来索引数据
  • //定义二维数组 index 0,1,2
    var my_arrys = [[1,2],[3,4],[5,6]];
    
    //通过索引值0读取一维数组的第一个成员
    my_arrays[0]; //[1,2]
    
    //通过索引值2读取第三个成员里的第1个元素
    my_arrays[3] = [7,8];
    
    console.log(my_arrays); //[[1,2],[3,4],[5,6]]
    

【案例】用一个数组描述有三个学生的班级的信息

var myClass = [
    {name:'章子怡',
     age:34,
     gender:'女',
     addr:'中国 上海'
    },

    {name:'黄晓明',
     age:40,
     gender:'男',
     addr:'中国 武汉'
    },

    {name:'赵薇',
     age:38,
     gender:'女',
     addr:'中国 香港'
    }
];


//等同于

var person_zzy{
 name:'章子怡',
 age:34,
 gender:'女',
 addr:'中国 上海'
};

var person_hxm{
 name:'黄晓明',
 age:40,
 gender:'男',
 addr:'中国 武汉'
};

var person_zw{
 name:'赵薇',
 age:38,
 gender:'女',
 addr:'中国 武汉'
}

var myClass = [person_zzy,person_hxm,person_zw];

results matching ""

    No results matching ""