JavaScript 的数组
数组的定义
数组也是一个对象,不同与其他对象的是:对象是使用字符串作为属性名来操作数据的,数组是使用数字作为索引来操作元素的。
索引值是从 0 开始的整数。
优势:数组比普通对象的性能要好、效率高,推荐使用数组来存储一些数据。
创建数组的方法
使用构造函数创建
语法:var 数组名 = new Array(元素值1,元素值2,...,元素值n);
var nullArr = new Array(); //创建一个空数组
var arr = new Array(10,23,34); //创建数组并添加元素
当只传入一个参数时,并不是指创建一个只有一个元素(值为参数)的数组,而是指创建一个长度为参数值的数组。不推荐使用该方式指定数组长度,因为没有实用的意义,JavaScript 中的数组长度是可以自由伸缩的。
var arr = new Array(10); //创建一个长度为10的数组
console.log(arr.length);
数组的元素可以是任意类型的数据,可以是数字、布尔、字符串、unll 、undefined、对象(包括数组、函数)。当数组的元素全是数组时,这是一个多维数组。
使用直接量创建
语法:var 数组名 = [元素值1,元素值2,...,元素值n];
var nullArr = []; //创建空数组
var arr = [1,2,3,4,5,6]; //创建数组并添加元素
var arrM = [[1,2,3],[4,5,6],[7,8,9]]; //创建一个多维数组
console.log(arrM[1]);
console.log(arrM[0][1]);
向数组中添加元素
使用索引添加
语法:数组名[索引] = 元素值
arr[0] = 12;
arr[1] = 23;
注意:数组也是一个对象,所以除了可以使用索引来添加元素,也可以像对象一样使用字符串作为属性名来添加元素,不推荐这种方式,降低了数组的效率。
arr.name = "lin";
console.log(arr.name);
每次都向数组的最后一个位置添加元素
语法:数组名[数组名.length] = 元素值
arr[arr.length] = 23;
获取数组中的元素值
语法:数组名[索引]
console.log(arr[1]);
规则:
- 如果读取不存在元素值,不会出错,返回值为 undefined。
数组的长度
获取数组的长度
console.log(arr.length);
规则:
- 对于索引连续的数组(稠密数组),使用 length 返回的值就是该数组的元素的个数;对于索引不连续的数组(稀疏数组),使用 length 返回的值为该数组最大的索引值加1。
设置数组的长度
语法:数组名.length = 某个整数
arr.length = 5;
规则:
- 如果修改的 length 值
大于
原数组的长度,则索引值大于 length-1 的元素均为空;如果修改的 length 值小于
原数组的长度,则索引值大于 length-1 的元素均被删除。