这只是基础部分,更深入部分可见后续的数组总结知识
一、概念
- 数组是值的有序集合。
- 数组中值(成员)称为元素,元素可以是任意类型的数据
- 元素具有位置,称为索引(小标),索引从0开始,是连续的数字。
- 索引从 0 开始,最大为 2^32-2,数组最大能容纳 4294967294 个元素
二、声明数组的方式
1. 直接量方式(常用)
let arr1 = []; //空数组
let arr2 = [1, 2, 3, 'hello', true, null, ['a', 5, 6]]; //创建一个拥有多个元素的数组
let arr3 = [12]; //创建只有一个元素的数组,该元素的值是12
2. Array函数方式
let arr1 = Array(); 空数组
let arr2 = Array(1, 2, 3, 'hello', true, null, ['a', 5, 6]); //创建一个拥有多个元素的数组
let arr3 = Array(12); // 创建一个具有12个元素的数组,只有一个数字参数就是表示数组元素的个数
let arr4 = Array('world') //创建只有一个元素的数组,该元素的值是'hello'
3. Array构造函数方式
let arr1 = new Array();
let arr2 = new Array(1, 2, 3, 'hello', true, null, ['a', 5, 6])
let arr3 = new Array(12);
let arr4 = new Array('world')
三、数组元素的读写
1. 读取
数组[索引]
- 根据索引读取元素的值(索引是元素的位置)
- 如果读取不存在的元素,自动得到undefined
2. 修改
数组[索引] = 新值;
- 根据索引修改元素的值(索引是元素的位置)
- 如果给不存在的元素赋值,会自动添加元素
四、稀疏数组
-
如果数组中出现没有值的元素(没有值不等同于undefined或null),该数组称为稀疏数组
-
什么情况下产生稀疏数组
- 使用Array()函数或者构造函数创建数组的时候,只指定了一个长度
- 使用不存在不连续的索引赋值
- 设置length的值(比原来的大)
-
应该尽量避免稀疏数组
五、数组的遍历
1. 使用循环结构
使用数组的length属性来控制循环次数
for (var i = 0;i < 数组.length;i ++){
console.log(a数组[i]);
}
2. 使用for in结构
是用于遍历对象的对象,数组也是对象的一种。使用该方式遍历数组,会把元素以外的其他属性也遍历出来
for(var i in 数组){
console.log(数组[i]);
}
六、多维数组
如果数组的元素还是数组,就是多维数组
var cityList = [
['南京','苏州','无锡','南通','泰州'],
['杭州','宁波','绍兴','温州','湖州'],
['合肥','芜湖','蚌埠','安庆','铜陵'],
['南昌','九江','赣州','上饶','赣南'],
]
七、数组元素的添加和删除
具体细节可见之后和ES6总结的数组方法
1. 添加元素
- 第一种方式,利用**length()**作为索引添加新元素
- 第二种方式,使用push()在数组后面添加一个或者多个元素
- 第三种方式,使用unshift()在数组的前面添加一个或者多个元素
- 第四种方式,使用splice()在数组指定位置添加一个或多个元素
2. 删除元素
- 第一种方式,修改length的值比原来小
- 第二种方式,使用pop()在数组后面删除最后一个元素
- 第三种方式,使用shift()在数组前面删除第一个元素
- 第四种方式,使用splice()在数组指定位置删除指定数量个元素
八、字符串的数组特性
-
字符串是由字符组成的串,字符串中的每个字符类似于数组中的元素
-
字符串具有部分数组特性
- 字符串中的每个字符也有索引,从0开始,连续的数字,可以通过索引读取到字符串中的某个字符
- 字符串也有length,可以获取字符串的长度(字符的个数)
-
字符串不具备的数组特性
- 没有push,pop,splice等方法
- 不能单独修改其中的某个字符串
- length不能被修改
-
我们把字符串这种具有部分数组特性但又不是数组的数据,成为类数字或伪数组