数组的理解
- 数组用来描述一组事物,比如:如果使用对象来描述一本书,那么我们可以使用数组来描述整个图书馆;我们使用对象来描述一个学生的话,那么可以用数组描述一个班级的学生
- 数组可以在一个变量名称中存储一系列有序的数据
【案例】我们描述一个人的信息,并输出到控制台
//用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];