数组的单词array
数组: 表示有序数据的集合每一项之间有顺序,每一项可以是任何数据类型
数组使用字面量: [] 每一项之间用逗号隔开, 每一项可以是任何数据类型,一般我们习惯书写相同的数据
最后一项不书写逗号.
var arr = [10, infinity, "你好", true, function () { console.log(1); }];
数组的数据类型:object( 引用数据 )
读取: 数组名[index] 通过index 索引值读取数组中每一项的值. index 从0 开始
2.1 length属性
数组length属性: 表示数组中保存数据的总个数
对象.方法()
对象.属性
读取数组: 数组.length
arr1.length
数组最后一项索引值arr.length-1
//读取数组最后一项console.log(arr1[arr1.length - 1]);
可以通过索引值赋值强制将数组拉长
//可以通过索引值赋值强制将数组拉长arr1[10]=10;console.log(arr1.length);//没有赋值undefinedconsole.log(arr1[9]);

可以通过length 强制将数组拉长, 没有赋值仍然是undefined
//可以通过length 将数组拉长arr1.length=20;console.log(arr1.length);//没有赋值仍然是undefinedconsole.log(arr1[18]);
2.2数组遍历
依次数组数组中每一项数值
//数组 arrayvar arr = [1, 1, 1, 1, 1, 2, 1, 2, 1, 3, 1, function ges() {console.log(1);}];//依次输出数组中每一项的值,索引值有效范围0 - arr.length-1;for (var i = 0; i <= arr.length - 1; i++) {console.log(arr[i]);}//最后一项是函数定义arr[arr.length - 1]();
首尾操作方法
push(): 表示在数组结尾添加数据
参数: 要添加的数据, 如果是多项用逗号隔开
返回值: 新数组的长度
var arr =[1,2,3,4,5,6];arr.push(20)console.log(arr.push(9,[88,100]));//push()原数组方法改变console.log(arr);// 打印9[ 1, 2, 3, 4, 5, 6, 20, 9, [ 88, 100 ] ]
pop() : 表示删除数组最后一项
参数: 不用书写
返回值: 返回删除项的值
//pop() 删除数组最后一项//返回值:删除的值var arr =[1,2,3,4,5,6];console.log(arr.pop());console.log(arr);// 打印6[ 1, 2, 3, 4, 5 ]
Unshift(): 在数组开头添加数据
参数 : 要添加的数据
返回值: 新数组的长度
// unshift()在数组开头添加数组//返回值console.log(arr.unshift(9));console.log(arr);
shift(): 删除数组第一项
参数 : 不用书写
返回值: 删除的值
//shif() 删除数组的第一项//返回值: 删除的数据console.log(arr.shift(0));console.log(arr);
1.2 合并和拆分方法
合并: concat()
参数: 要合并的数组
返回值: 合并后的新数组
var arr1 =[1,2,3,4,5,6];var arr2 =[7,8,9]//concat()console.log(arr1.concat(arr2));console.log(arr1);// 打印[ 1, 2, 3, 4, 5, 6 ][ 1, 2, 3, 4, 5,6, 7, 8, 9 ]
拆分: slice(start,end)
参数: 需要两个参数,
Start:表示数组截取项开始的索引值
End:表示数组截取项结束的索引值
包括 start 不包括end
返回值:
截取后的新数组
// slice() 截取,表示从开始截取到最后var arr1 =[1,2,3,4,5,6];console.log(arr1.slice(2,5) );console.log(arr1);// 打印[ 1, 2, 3, 4, 5, 6 ][ 3, 4, 5 ]
还可以使用负数,表示倒数, 从-1 开始
//可以省略end 表示截取到最后var arr1 =[1,2,3,4,5,6];console.log(arr1.slice(1));//打印[ 2, 3, 4, 5, 6 ]
1.3数组删除,插入,替换方法
Splice(index,howmany,elements````````)
Index : 必须书写, 删除项开始索引值.
Howmany : 必须书写, 删除数组个数, 如果没有删除书写 0
Elements : 元素可以省略, 可以有多个用逗号隔开, 插入, 替换的元素
返回值: 删除项组成的新数组 , 没有删除返回空数组.
删除
howmany 不能是0 , elements 不要书写
var arr = [1, 2, 3, 4, 5, 6, 7];//删除var arrnew = arr.splice(2, 3)console.log(arrnew)// var arrnew = arr.splice(要删除的起始位置,删除几个,插入可省略)//打印[ 3, 4, 5 ]
插入
howmany:书写为0 , elements书写要插入的数据
var arr = [1, 2, 3, 4, 5, 6, 7];//插入 [1,2,3,333,444,4,5,6,7]console.log(arr.splice(3,0,333,444));console.log(arr.splice(3,不删除数据填0,333,444));console.log(arr);
替换
howmany 不能是0 , Elements 表示替换的数据
//替换 [1,2,333,444,5,6,7]console.log(arr.splice(2,2,3,4));console.log(arr);
1.4倒序排序
倒序: reverse()
只是将数组第一项和最后一项 每一个都进行前后颠倒
参数 : 省略
返回值: 倒置后的新数组
var arr =[1,2,3,4,5,6,7];//倒序console.log(arr.reverse());console.log(arr);
排序: sort()
参数:省略
返回值: 排序后的新数组
排序依据: 将数组每一项转为字符串 , 然后按照字符编码进行比较 , 编码越靠后越大
数字大写字母 小写字母
//数组var arr1 =[123,37,"a","B",true];console.log(arr1.sort());//原数组改变console.log(arr1);

参数: 可以书写比较函数 , 比较函数是匿名函数, 可以声明2个参数 a, b
a,b 表示两个要比较的数据
可以自定义升序( 降序):
以升序为列:
A>b: 返回负数
A ==b :返回0
a<b : 返回整数
var arr2 = [1, 2, 34, 67, 39, 90]// 自定义升序arr2.sort(function (a, b) {if (a > b) {return 2;} else if (a == b) {return 0;} else {return -1;}})console.log(arr2);var arr2 = [1, 2, 34, 67, 39, 90]// 自定义降序arr2.sort(function (a, b) {if (a > b) {return -1;} else if (a == b) {return 0;} else {return 2;}})console.log(arr2);

1.5 join()数组转字符串
join()表示将数组转为字符串方法
参数: 可以不书写, 也可以书写, 表示每一项按照参数连接
返回值: 字符串
//数组var arr = [1, 2, 3, 4, 5, 6, 7];//省略参数, 表示以逗号连接//返回值行字符串//原数组不改变console.log(arr.join());console.log(typeof (arr.join()));//书写参数: 表示参数连接console.log(arr.join("----"));

