1 数组 Array
1.1 什么是数组
1. 数组是值的有序集合
2. 组成数组的成员(值)称为元素, 元素可以是任意类型的数据
3. 每个元素有个位置,位置使用数字表示,称为索引(小标),索引是连续的数字,从 0 开始
4. 数组索引从 0 开始, 最大为 2^32-2,数组最大能容纳 4294967294 个元素。
1.2 创建数组的方式
① 直接量方式
[]; // 空数组
[100, 45.101, '高小乐', false, null, undefined, [100,200,300]];
② Array 函数方式
Array(); // 创建空数组
Array(200,300,'Hello', '高小乐', [10,20,03]); // 创建了具有5个元素的数组
Array(17); // 创建了具有17个元素的数组,每个元素没有值
Array('hello'); // 创建了具有1个元素的数组
如果 Array 函数只有一个参数且是个数字,该参数会被认为是数组中元素的个数
③ Array 构造函数方式
new Array(); // 创建空数组
new Array(200,300,'Hello', '高小乐', [10,20,03]); // 创建了具有5个元素的数组
new Array(17); // 创建了具有17个元素的数组,每个元素没有值
new Array('hello'); // 创建了具有1个元素的数组
Array 构造函数的规则与 Array 函数一致!
1.3 数组元素的读写
① 读取数组元素的值
数组[索引]
读取不存在的元素的值,会自动得到 undefined。
② 修改数组元素的值
数组[索引] = 新值;
给不存在的元素赋值,会添加该元素作为新元素。
1.4 稀疏数组
1. 什么是稀疏数组
如果数组中存在没有值的元素,该数组就是稀疏数组
2. 哪些方式可能会产生稀疏数组
① 给数组添加新元素,索引与前面不连续
② 使用 Array函数或构造函数方式创建数组,只有一个参数且是数字
③ 修改数组的 length 属性,值比原来的大
1.5 数组的遍历(迭代)
① 使用循环结构进行遍历(推荐)
for (var i = 0; i < 数组.length; i ++) {
i; // 作为索引
数组[i]; // 元素的值
}
② 使用 for in 结构
for (var i in 数组) {
i; // 作为索引
数组[i]; // 元素的值
}
1.6 数组元素的添加和删除
① 添加元素
1. 使用 数组.length 作为索引添加元素
数组[数组.length] = 新元素
2. push() 方法在数组后面添加一个或多个新元素
数组.push(新元素);
数组.push(新元素1, 新元素2...);
3. unshift() 方法在数组前面添加一个或多个新元素
数组.unshift(新元素);
数组.unshift(新元素1, 新元素2...);
4. splice() 方法指定位置添加一个或多个新元素
数组.splice(索引, 0, 新元素)
数组.splice(索引, 0, 新元素1, 新元素2...)
② 删除元素
1. 数组.length -= n; 删除后n个元素
2. 数组.pop() 删除最后一个元素,一次只能删除一个
3. 数组.shift() 删除第一个元素,一次只能删除一个
4. 数组.splice(索引,数量); 删除指定位置指定数量的元素
1.7 多维数组
如果数组的元素还是数组,该数组可以称为多维数组
[
['广州', '深圳', '佛山', '东莞', '惠州'],
['南京', '苏州', '徐州', '无锡', '南通'],
['济南', '青岛', '烟台', '潍坊', '淄博'],
['杭州', '宁波', '温州', '绍兴', '湖州']
];
1.8 字符串的数组特性
1. 字符串具有一部分数组特性
有lenght属性,可以读取到字符串的长度; 但是length的值不能像数组一样修改
可以通过索引读取到某个字符,但是不能修改单个字符
2. 字符串这种具有一部分数组特性但又不是数组的数据,统称为类数组(伪数组 Like-Array)