## 创建数组
1.字面量创建
var arr = [1,2,3,4]
2.构造函数创建
var arr1 = new Array(1,2,3,4)
注:数组中的数据类型可以是六大类型中的任意一种
## 数组方法
1. length 长度
可以使用for循环
2.数组添加删除【首尾】
pop与push 【尾部】
pop:删除尾部,且只能删掉一个
push:添加尾部,可以添加若干个
shift与unshift 【头部】
shift:删除头部,且只能删掉一个
unshift:添加头部,可以添加若干个
3.splice 删除、替换、添加
splice(m): 传一个值,从m下标开始到数组结束全部删除
splice(m,n): 传两个值,m代表起始下标,n代表个数,并且删除
splice(m,n,o): 传三个值,当n>0时,【替换】从下标m开始找n项替换成o
当n=0时,【添加】不删除,而是在该项前进行添加
4.sort 排序
数组名.sort(function(参数1,参数2){ 参数1,参数2 代表的是数组中相邻的两个元素
return 参数1-参数2 ; 升序排列
return 参数2-参数1 ; 降序排列
})
其中: 1. Date.parse('字符串时间') 方法 可以将字符串时间表达转换成时间戳
2. 参数1.localeCompare(参数2) 字母排序 a-z排序 【中英文字母排序】
【经典排序: 1.选择排序 2.冒泡排序 3.快速排序】
4.1 选择排序
排序思路: 一个和多个进行比较
4.2 冒泡排序
排序思路: 两两相邻比较
4.3快速排序
排序思路: 1.取出【删除】数组中间项
2.将删减后的新数组与 刚取出来的中间项逐个进行比较
3.设置两个空数组,若比中间项小,则放入一个空数组中,若比中间项大,则放入另一个空数组中。
4.反复比较,数组拼接
5.join 拼接
将数组每一项按照内容拼接 将数组转化成字符串
数组名.join('内容')
6.concat 连接
将多个数组连接成一个新大数组
数组1.concat(数组2,数组3,数组n..)
7.reverse() 反转
将数组顺序反转【不能排序】
8.indexOf()
根据内容返回第一次出现下标值,若查找不到返回-1
9.slice() 截取数组
slice(m) 传一个值: 从m下标开始到数组结束全部截取
slice(m,n) 传两个值: m起始下标,n结束下标,包前不包后截取
10. Array.isArray(参数)
检测是否是一个数组 返回布尔值
true - 是数组 false - 不是数组
## 数组迭代方法 【不改变原数组】
1. every 方法
对数组循环,每个元素进行判断,如果每项都为true则结果为true【结果是布尔值】
格式:
数组名.every(function(【值】,【下标】){
return 判断
})
2.some 方法
对数组循环,每个元素进行判断,如果有一项为true则结果为true,若都为false则返回false 【结果布尔值】
格式:
数组名.some(function(【值】,【下标】){
return 判断
})
3.filter 方法
筛选 对数组循环,每个元素进行判断筛选,返回符合条件的值 【返回满足条件的值,组成数组】
格式:
数组名.filter(function(【值】,【下标】){
return 判断
})
4.map 方法
对数组循环,每个元素进行操作【返回一个新数组】
格式:
数组名.map(function(【值】,【下标】){
return 操作
})
5.forEach 方法
循环数组
格式:
数组名.forEach(function(【值】,【下标】){
第一个参数 - 数组中具体值
第二个参数 - 数组下标
})