文章目录
1. 定义数组
(1)字面量形式
var arr = [1, 2, 3, 4, 5]
(2)new方法创建数组对象
// 数组长度为5
var arr = new Array(5)
2. 数组的遍历
var arr = [1, 2, 3, 4, 5]
for (var i = 0; i < arr.length; i++) {
console.log(arr[i])
}
3. isArray 判断是否为数组
Array.isArray(arr)
返回bool值
4. instanceof 检测数据类型
arr instanceof Array
返回bool值
4. 数组常用方法
4.1 push
作用:在数组后面添加一个或多个数据
返回:返回push后数组长度
是否改变原数组: 改变原数组
4.2 pop
作用: 删除数组最后一个数据
返回: 删除的数据
是否改变原数组: 改变原数组
4.3 unshift
作用:在数组前面添加一个或多个数据
返回:返回push后数组的长度
是否改变原数组:改变原数组
4.4 shift
作用:删除第一个数据
返回:返回删除的数据
是否改变原数组:改变原数组
4.5 concat
作用:合并两个数组
返回:新数组
是否改变原数组:不改变
4.6 slice
作用:截取数组
返回:截取后的数组
是否改变原数组:不改变
用法:arr.slice(start, [end])
start : 截取数组开始的下标
end: 截取end前的数据
前闭后开
slice 复制一个新数组
const arr = [1,2,3,4,5];
const newArr = arr.slice();
console.log(newArr); // [1,2,3,4,5]
4.7 多功能splice方法
作用: 可以截取,插入, 替换数据
是否改变原数组:改变原数组
4.7.1 截取
一个参数时:
arr.splice(3) 从索引3开始截取后面所有元素
返回截掉的元素,改变原数组
- 从下标2开始截取3个
- 返回截取的数据
4.7.2 插入数据
- 从下标2开始截取0个,也就是插入
- 返回删除的数据
4.7.3 替换数据
- 从下标2开始,替换后4个数据为新添加的数据
- 返回删除的数据
4.7.4 删除数据
- 删除最后两条数据
- 返回删除的数据
5. 数组逆序reverse
改变原数组
6. sort 排序
- 默认以ASCII码值排序
- 改变原数组
数字排序通过回调函数实现
(1)从小到大排序
var arr = [11, 23, 4, 45, 5]
arr.sort(function(a, b) {
return a - b
});
console.log(arr)
(2)从大到小排序
arr.sort(function(a, b) {
return b - a
});
7. join
作用: 数组转字符串
不改变原数组
8. indexof
作用:从前向后检索索引; 返回索引值
如果查询的不存在,返回-1
arr.indexOf(2, 5) 从索引5开始查找
8.1 lastindexof
作用:从后向前检索索引;返回索引值
如果查询的不存在,返回-1
索引任然是从前往后数
9. 数组高级方法之迭代方法
(1)every()
检测数组中所有元素是否都符合指定条件,一个不满足都会返回false
let arr = [1,2,3,4,5];
const bool = arr.every((v, i) =>{
return v < 6;
});
console.log(bool); //true
(2)some()
有一项满足局返回true
let arr = [1,2,3,4,5];
const bool = arr.some((v, i) =>{
return v < 0;
});
console.log(bool); //false
(3) filter()
返回符合条件的所有元素存放在另一个数组中
let arr = [1,2,3,4,5];
const bool = arr.filter((v, i) =>{
return v < 3;
});
console.log(bool); //[1,2]
(4) map()
对数组里的每个元素经过指定操作返回
let arr = [1,2,3,4,5];
const bool = arr.map((v, i) =>{
return v * 2;
});
console.log(bool); //[2,4,6,8,10]
(5)forEarch
循环遍历
let arr = [1,2,3,4,5];
arr.forEach((v, i) =>{
console.log(v);
});
(6)reduce
数组的第一项开始,逐个遍历到最后
let arr = [1,2,3,4,5];
const sum = arr.reduce((total, v) =>{
return total + v
}, 0);
console.log(sum); //15