数组的单词array
数组: 表示有序数据的集合每一项之间有顺序,每一项可以是任何数据类型
数组使用字面量: [] 每一项之间用逗号隔开, 每一项可以是任何数据类型,一般我们习惯书写相同的数据
最后一项不书写逗号.

  1. var arr = [10, infinity, "你好", true, function () { console.log(1); }];

数组的数据类型:object( 引用数据 )
读取: 数组名[index] 通过index 索引值读取数组中每一项的值. index 从0 开始

2.1 length属性

数组length属性: 表示数组中保存数据的总个数
对象.方法()
对象.属性
读取数组: 数组.length

  1. arr1.length

数组最后一项索引值arr.length-1

  1. //读取数组最后一项
  2. console.log(arr1[arr1.length - 1]);

可以通过索引值赋值强制将数组拉长

  1. //可以通过索引值赋值强制将数组拉长
  2. arr1[10]=10;
  3. console.log(arr1.length);
  4. //没有赋值undefined
  5. console.log(arr1[9]);

image.png

可以通过length 强制将数组拉长, 没有赋值仍然是undefined

  1. //可以通过length 将数组拉长
  2. arr1.length=20;
  3. console.log(arr1.length);
  4. //没有赋值仍然是undefined
  5. console.log(arr1[18]);

image.png

2.2数组遍历

依次数组数组中每一项数值

  1. //数组 array
  2. var arr = [1, 1, 1, 1, 1, 2, 1, 2, 1, 3, 1, function ges() {
  3. console.log(1);
  4. }];
  5. //依次输出数组中每一项的值,索引值有效范围0 - arr.length-1;
  6. for (var i = 0; i <= arr.length - 1; i++) {
  7. console.log(arr[i]);
  8. }
  9. //最后一项是函数定义
  10. arr[arr.length - 1]();

首尾操作方法

push(): 表示在数组结尾添加数据

参数: 要添加的数据, 如果是多项用逗号隔开
返回值: 新数组的长度

  1. var arr =[1,2,3,4,5,6];
  2. arr.push(20)
  3. console.log(arr.push(9,[88,100]));
  4. //push()原数组方法改变
  5. console.log(arr);
  6. // 打印
  7. 9
  8. [ 1, 2, 3, 4, 5, 6, 20, 9, [ 88, 100 ] ]

pop() : 表示删除数组最后一项

参数: 不用书写
返回值: 返回删除项的值

  1. //pop() 删除数组最后一项
  2. //返回值:删除的值
  3. var arr =[1,2,3,4,5,6];
  4. console.log(arr.pop());
  5. console.log(arr);
  6. // 打印
  7. 6
  8. [ 1, 2, 3, 4, 5 ]

Unshift(): 在数组开头添加数据

参数 : 要添加的数据
返回值: 新数组的长度

  1. // unshift()在数组开头添加数组
  2. //返回值
  3. console.log(arr.unshift(9));
  4. console.log(arr);

shift(): 删除数组第一项

参数 : 不用书写
返回值: 删除的值

  1. //shif() 删除数组的第一项
  2. //返回值: 删除的数据
  3. console.log(arr.shift(0));
  4. console.log(arr);

1.2 合并和拆分方法

合并: concat()

参数: 要合并的数组
返回值: 合并后的新数组

  1. var arr1 =[1,2,3,4,5,6];
  2. var arr2 =[7,8,9]
  3. //concat()
  4. console.log(arr1.concat(arr2));
  5. console.log(arr1);
  6. // 打印
  7. [ 1, 2, 3, 4, 5, 6 ]
  8. [ 1, 2, 3, 4, 5,6, 7, 8, 9 ]

拆分: slice(start,end)

参数: 需要两个参数,
Start:表示数组截取项开始的索引值
End:表示数组截取项结束的索引值
包括 start 不包括end
返回值:
截取后的新数组

  1. // slice() 截取,表示从开始截取到最后
  2. var arr1 =[1,2,3,4,5,6];
  3. console.log(arr1.slice(2,5) );
  4. console.log(arr1);
  5. // 打印
  6. [ 1, 2, 3, 4, 5, 6 ]
  7. [ 3, 4, 5 ]

还可以使用负数,表示倒数, 从-1 开始

  1. //可以省略end 表示截取到最后
  2. var arr1 =[1,2,3,4,5,6];
  3. console.log(arr1.slice(1));
  4. //打印
  5. [ 2, 3, 4, 5, 6 ]

1.3数组删除,插入,替换方法

Splice(index,howmany,elements````````)

Index : 必须书写, 删除项开始索引值.
Howmany : 必须书写, 删除数组个数, 如果没有删除书写 0
Elements : 元素可以省略, 可以有多个用逗号隔开, 插入, 替换的元素

返回值: 删除项组成的新数组 , 没有删除返回空数组.

删除

howmany 不能是0 , elements 不要书写

  1. var arr = [1, 2, 3, 4, 5, 6, 7];
  2. //删除
  3. var arrnew = arr.splice(2, 3)
  4. console.log(arrnew)
  5. // var arrnew = arr.splice(要删除的起始位置,删除几个,插入可省略)
  6. //打印
  7. [ 3, 4, 5 ]

插入

howmany:书写为0 , elements书写要插入的数据

  1. var arr = [1, 2, 3, 4, 5, 6, 7];
  2. //插入 [1,2,3,333,444,4,5,6,7]
  3. console.log(arr.splice(3,0,333,444));
  4. console.log(arr.splice(3,不删除数据填0,333,444));
  5. console.log(arr);

替换

howmany 不能是0 , Elements 表示替换的数据

  1. //替换 [1,2,333,444,5,6,7]
  2. console.log(arr.splice(2,2,3,4));
  3. console.log(arr);

1.4倒序排序

倒序: reverse()

只是将数组第一项和最后一项 每一个都进行前后颠倒
参数 : 省略
返回值: 倒置后的新数组

  1. var arr =[1,2,3,4,5,6,7];
  2. //倒序
  3. console.log(arr.reverse());
  4. console.log(arr);

image.png

排序: sort()

参数:省略
返回值: 排序后的新数组
排序依据: 将数组每一项转为字符串 , 然后按照字符编码进行比较 , 编码越靠后越大
数字大写字母 小写字母

  1. //数组
  2. var arr1 =[123,37,"a","B",true];
  3. console.log(arr1.sort());
  4. //原数组改变
  5. console.log(arr1);

image.png
参数: 可以书写比较函数 , 比较函数是匿名函数, 可以声明2个参数 a, b
a,b 表示两个要比较的数据
可以自定义升序( 降序):
以升序为列:
A>b: 返回负数
A ==b :返回0
a<b : 返回整数

  1. var arr2 = [1, 2, 34, 67, 39, 90]
  2. // 自定义升序
  3. arr2.sort(function (a, b) {
  4. if (a > b) {
  5. return 2;
  6. } else if (a == b) {
  7. return 0;
  8. } else {
  9. return -1;
  10. }
  11. })
  12. console.log(arr2);
  13. var arr2 = [1, 2, 34, 67, 39, 90]
  14. // 自定义降序
  15. arr2.sort(function (a, b) {
  16. if (a > b) {
  17. return -1;
  18. } else if (a == b) {
  19. return 0;
  20. } else {
  21. return 2;
  22. }
  23. })
  24. console.log(arr2);

image.png

1.5 join()数组转字符串

join()表示将数组转为字符串方法
参数: 可以不书写, 也可以书写, 表示每一项按照参数连接
返回值: 字符串

  1. //数组
  2. var arr = [1, 2, 3, 4, 5, 6, 7];
  3. //省略参数, 表示以逗号连接
  4. //返回值行字符串
  5. //原数组不改变
  6. console.log(arr.join());
  7. console.log(typeof (arr.join()));
  8. //书写参数: 表示参数连接
  9. console.log(arr.join("----"));

image.png