JavaScript中的数组特点
JavaScript中的数组可以存储任何JavaScript值(包括数字、字符串、布尔值、对象、和其他数组)
“数组”本质上就是对象类型(即object
)(有push
等方法)
同一个数组中,可以存储不同类型的元素,但应尽量存储相同类型的值,处理起来更容易、更安全
数组元素的值可能是undefined
,含有undefined
元素的数组称为稀疏数组
使用稀疏数组时,一定要确保所操作的元素不是undefined
例如,
var arr=[1,2];
数组大小只有2,若此时赋值arr[10]=5;
那么索引arr[2]
到arr[9]
的值都是undefined
这个数组就是一个稀疏数组(数组只包含3个值,但其长度却是11)
创建新数组
构造函数法
var newArray = new Array(3);
数组字面量表示法
(ps. 数组字面量用于创建数组,正如对象字面量用于创建对象)
创建一个空数组
var newArray = [];
创建数组并指定其中的元素
var flavors = ["vanilla","lavender","chocolaate"];
在数组中添加新元素
要在数组中添加新元素,使用函数push
var flavors = ["vanilla","lavender","chocolaate"];
flavors.push("cookie dough");
//flavors = ["vanilla","lavender","butterscotch","cookie dough"];
给不存在的元素赋值,也将创建新元素
但要小心地指定索引,如果指定的索引不是数组的下一个可用索引,数组将是稀疏的(sparse)
var flavors = ["vanilla","lavender","chocolaate"];
flavors[3]="cookie dough";
//flavors = ["vanilla","lavender","butterscotch","cookie dough"];
查看数组的长度
使用数组的length
属性
var len = Array.length;
访问和修改数组元素
使用索引(index)访问数组元素
var flavorToday = flavors[2];
访问无效的索引,得到的值是undefined
var flavorToday = flavors[-1];
//flavorToday==undefined
给既有元素赋值,可以修改该元素的值
var flavors = ["vanilla","lavender","chocolaate"];
flavors[2]="butterscotch";
//flavors = ["vanilla","lavender","butterscotch"];
给不存在的元素赋值,将创建新元素
var flavors = ["vanilla","lavender","chocolaate"];
flavors[3]="cookie dough";
//flavors = ["vanilla","lavender","butterscotch","cookie dough"];
删除元素
- 用
delete
删除元素,实质上只是将元素置为undefined
,而数组本身长度不变
i.e. 会导致出现稀疏数组 - 因此,更推荐用
Array.splice(index,howmany)
方法:会改变原始数组,并返回包含被删除项目的新数组
index为删除项目的位置,howmany为要删除的项数
ps.splice
也可用于增加新项目
indexOf方法:查找数组元素
array.indexOf(数组元素值)
传入要在数组中搜索的数组元素值,返回其索引