什么是数组
答:英文中的"array"的意思是有序的排列,以形成秩序。
在编程语言中,数组是一种数据类型。这种数据类型把同类型的数据存储在内存中的一块连续的地址上。
在js中,数组同样也是一种数据结构。数组是存储在连续内存中的值的有序集合。与其他编程语言不同的是,JS数组可以存储不同数据的数据。
[1,2,3,4,5,6,7]
['苹果','香蕉','葡萄']
['zhangsan',19,false,['篮球','足球']
数组元素
定义:数组中的每一个值都叫元素
- 元素使用方括号包裹
- 多个元素之间用英文逗号分隔
数组索引
定义:数组中的每个元素都对应一个唯一有序数字,这个数字表示数组元素的位置,这个数字叫"索引"(下标)。
数组分类
空数组:不包含任何元素的数组
密集数组: 数组元素和数组索引一一对应。
['a','b','c','d','e']
0 1 2 3 4
特点:密集数组的lenght属性可以准确的反映数组元素数量。
稀疏数组
定义:数组元素的分布和数组索引不是一一对应。
['a',','c',,'e'] //lengght: 6 元素只有3个
特点:数组的lenght属性不能准确反映数组元素的数量
一维数组
一维数组:存储的都是原始值(没有数组、对象)
[1,2,3,4,5,6,7]
['苹果','香蕉','葡萄']
二维数组
定义:二维数组存储的是元素列表。
['zhangsan',19,false,['篮球','足球']
多维数组
定义:多维数组存储的是元素列表的列表....
['zhangsan',19,false,['篮球','足球',['象棋','跳棋']]
创建数组的方法
字面量法
使用字面量法表示创建
语法
[元素1,,元素2,元素3,...]
new Array() 构造函数法
定义
使用Array()构造函数创建数组
new Array(参数)
扩展符
使用内置方法创建
- String.split()
- Array.from(伪数组)
- Array.map()
- Array.filter()
操作数组
查询数组长度
语法
Array.lenght //返回一个数字,表示数组长度
用法1:查询数组的最后一个元素
Array[array.lenght - 1]
用法2:利用lenght属性向数组末尾添加新元素
const arr = ['a','b',......,'c']
//需求:求['a','b','c','d']
arr[arr.lenght] = 'd'
arr[0] = 'o'
用法3:利用lenght属性删除数组
const arr = ['a','b','c','d']
arr.lenght = 3
console.log(arr) // 'a','b','c'
访问数组元素
定义
使用索引法
访问数组元素
语法
数组名[索引]
修改数组元素
定义
使用索引赋值法
修改数组元素
语法
数组名[索引] = 新值
添加数组元素
方法1:使用索引添加
数组名[数组长度] = 新值
方法2:使用内置方法添加
- Array.push()
- Array.unshifit
- Array.splice() 通用方法:添加、删除、修改数组元素
删除数组元素
方法1:使用内置方法删除
- Array.pop()
- Array.shift()
- Array.splice() 通用方法:添加、删除、修改数组元素
- Array.concat():合并数组
方法2:delete操作符删除
语法
dlete 数组名[索引] //只删除元素,不删除索引位置。留下一个"孔"变成稀疏数组
示例
const arr = ['a','b','c','d']
delete arr[1] //['a','b','c','d']
遍历数组元素
for循环
for of循环
for in 循环
数组迭代器法(9个)
数组特点
- 数组是有索引的
- 数组是有长度的
- 比较数组是数组地址的比较
- 复制数组是数组地址的复制