JavaScript - 数组

2 数组

2.1 什么是数组

  1. 数组是值的有序集合

  2. 每个值叫做一个元素

  3. 每个元素在数组中有一个位置, 以数字表示,称为索引 (有时也称为下标)。

  4. 数组的元素可以是任何类型。

  5. 数组索引从 0 开始, 最大为 2^32-2,数组最大能容纳 4294967294 个元素。

2.2 声明数组的方式

① 直接量方式
[];   // 空的数组
[100, 200, 300, '小乐', true, null, undefined, ['aa', 'bb']];  // 有 8 个元素的数组
[10]; // 只有一个元素的数组
② Array 函数方式
Array(100, 200, 300, '小乐', true, null, undefined, ['aa', 'bb']);   // 创建有 8 个元素的数组
Array('hello');  // 创建有1个元素的数组
Array(15);       // 创建有15个元素的数组
Array();		 // 创建空数组

注意: Array 如果只有一个参数且该参数是number类型,会被认为是指定数组的长度。

③ Array 构造函数方式
new Array(100, 200, 300, '小乐', true, null, undefined, ['aa', 'bb']);   // 创建有 8 个元素的数组
new Array('hello');  // 创建有1个元素的数组
new Array(15);       // 创建有15个元素的数组
new Array();		 // 创建空数组

总结: Array 构造函数方式和 Array 函数方式,规则都是一样的。

2.3 数组元素的读写

1. 数组名后面加 [], [] 里面写数组中某个元素的索引,可以对该与元素使用或赋值
   arr[2] + 10;
   console.log(arr[3]);
   arr[3] = 2000;

2. 给不存在的元素赋值,会自动添加一个元素
3. 使用数组中不存在的元素,会返回 undefined

2.4 稀疏数组

1. 数组要求元素的索引必须是连续的数字
2. 如有数组中存在没有元素的值,这样的数组成为稀疏数组。
3. 产生稀疏数组的方式: ① 通过不连续的索引给元素赋值 ② 修改数组的 length 比原来的长度大
4. 使用(读取)没有值的元素,会自动得到 undefined
5. 注意: 尽量避免稀疏数组

2.5 数组的遍历(迭代)

// 1 使用循环遍历数组
for (var i = 0; i < arr.length; i ++) {
    arr[i]; // 获取到了数组的元素
}

// 2 使用 for in 结构遍历数组
for (var i in arr) {
    arr[i];  // 获取到数组的元素
}

注意: 推荐使用循环的方式遍历数组, 因为 for in 遍历不是针对数组的而是针对所有对象类型的数据。

2.6 数组元素的添加和删除

① 添加元素
1. 利用数组的 length 指定下一个新元素的索引
   arr[arr.length] = 新元素的值;

2. 使用 push() 方法在数组后面追加一个或多个元素
   arr.push(新元素);
   arr.push(新元素1, 新元素2 ...)

3. 使用 unshift() 方法在数组的前面添加一个或多个元素
   arr.unshift(新元素);
   arr.unshift(新元素1, 新元素2 ...)

4. 使用 splice() 在指定位置插入一个或多个新元素
   arr.splice(索引, 0, 新元素);
   arr.splice(索引, 0, 新元素1, 新元素2 ...);
② 删除元素
1. 通过修改 length 的值达到删除元素的目的
   arr.length -= n;  // 表示删除数组的后 n 个元素
   
2. 使用 pop() 删除数组的最后一个元素
   arr.pop();   // 一次只能删除一个

3. 使用 shift() 删除数组的第一个元素
   arr.shift()  // 一次只能删除一个

4. 使用 splice() 删除指定位置指定数量的元素
   arr.splice(index, n);    // 从索引是 index 的元素开始删除 n 个

2.7 多维数组

如果数组的元素仍然是个数组,该数组就是多维数组,分为 二维数组、三维数组 等

[
    [100,200,300,400,500], 
    ['刘姥姥', '牛姥姥', '马姥姥'], 
    ['A', 'B', 100, 'C', 'D', 9021, true, undefined],
    [
        [10, 20, 30, 40],
        [100, 200, 300, 400],
        [100, 200, 300, 400]
    ]
];

2.8 字符串的数组特性

1. 字符串具有一些数组特性:
   ① 字符串中的字符也具有索引,通过索引可以读取字符
   ② 字符串有length,可以获取字符串长度(字符个数)
   ③ 可以使用循环遍历字符串中所有的字符
   
2. 字符串只是具备一部分数组特性,不是全部
   ① 无法通过索引修改字符
   ② 字符串的 length 也无法修改
   
   
3. Like-Array 类数组或者伪数组
   字符串类似于是由字符组成的数组,具有数组的一部分特性
   这样数据就被认为是伪数组
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值