数组也是一个对象
它和我们普通对象功能类似,也是用来存储一些值的
不同的是普通对象是使用字符串作为属性名的。

  • 而数组是使用数字来作为索引操作元素

索引:

  • 从 0 开始的整数就是索引

数组的存储性能比普通对象更好,在开发中我们经常使用数组来存储一些数据
使用typeof 检查一个数组,会返回 object


什么是数组

数组是值得有序集合,每个值叫做一个元素,而每个元素在数组中有一个位置,以数字表示,称为 索引 。js的数组是无类型的,数组元素可以是任意类型,同一个数组中的不同元素可能是对象或数组。数组元素的索引不一定要连续,元素之间可以有空隙,叫做 稀疏数组 。每个数组都具有一个lengrh属性。针对非稀疏数组,length属性就是数组元素的个数,针对稀疏数组,元素的length属性比所有元素的索引要大。非稀疏是我们学习掌握的主要知识点。


创建一个数组

  • 调用构造函数 Array() 创建数组
    1. var arr = new Array();

向数组中添加元素

语法:

  1. 数组[索引] =

实例:

  1. arr[0] = "孙悟空;
  2. arr[1] = "哈哈";

读取数组中的元素

语法:

  1. 数组[索引]

实例:

  1. console.log(arr[0]); // 孙悟空

如果读取不存在的索引,不会报错而是返回 undefined

  1. console.log(arr[3]); // undefined

获取数组的长度

  1. 每个数组都有一个length属性,针对非稀疏数组,length属性值代表数组中元素的个数,其值比数组中最大的索引大一。当数组是稀疏时,length属性值会大于元素个数。数组的长度会大于每一个元素的索引值。

  2. 设置length属性为一个小于当前数组长度的非负整数n时,当前数组中的那些索引值大于等于n的元素将从数组中删除。同时可以将length属性设置为大于当前长度的值,实际不会像数组中添加元素,它只是在数组尾部创建一个空的区域。

使用 length 属性来获取数组的长度(元素的个数)
语法:

  1. 数组.length

实例:

  1. var arr = new Array();
  2. arr[0] = "孙悟空";
  3. arr[1] = "猪八戒";
  4. arr[2] = "唐僧";
  5. console.log(arr.length); // 3

对于连续的数组,使用 length 可以获取到数组的长度(元素的个数)
对于非连续的数组,使用 length 会获取到数组的 最大索引+1

  1. var arr = new Array();
  2. arr[0] = "孙悟空";
  3. arr[1] = "猪八戒";
  4. arr[2] = "唐僧";
  5. arr[50] = "沙和尚";
  6. console.log(arr.length); // 51

:::info 尽量不要创建非连续的数组 :::


修改length

  • 如果修改的 length 大于原长度,则多出部分会空出来
  • 如果修改的 length 小于原长度,则多出的元素会被删除

向数组的最后添加元素

语法:

  1. 数组[数组.length] = 值;

实例:

  1. var arr = new Array();
  2. arr[0] = 0;
  3. arr[1] = 1;
  4. arr[2] = 2;
  5. arr[arr.length] = 4;
  6. arr[arr.length] = 5;
  7. console.log(arr.length); // 5

更多补充:https://www.cnblogs.com/pandawind/p/9777778.html