数组的单词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);
//没有赋值undefined
console.log(arr1[9]);
可以通过length 强制将数组拉长, 没有赋值仍然是undefined
//可以通过length 将数组拉长
arr1.length=20;
console.log(arr1.length);
//没有赋值仍然是undefined
console.log(arr1[18]);
2.2数组遍历
依次数组数组中每一项数值
//数组 array
var 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("----"));