数组是储存多个相同类型的数据的集合
一.常用到的方法
①---
1.push 尾元素添加一个元素
2.pop 尾元素删除一个元素
3.unshift 头部添加
4.shift 头部删除
5.splice 截取
截取后 输出原数组则为剩下没被截取的数组
三个参数 (index,截取多少个,itemX(另个数))
eg:
let arr = [1, 2, 3, 4, 6];
arr.splice(2,3)----》 [3, 4, 6]
下标为2的开始截取3个数,输出原数组
6.slice 截取
两个参数
从第一个参数代表开始的下标到第二个参数的下标但不包过第二个参数的下标这个数
①.如果第2个参数为负数,则负数加数组的长度就为第二个参数
②如果2个参数都为负数,则都加上数组的长度即可
7.reverse 反转,原数组改变
8.indexOf
找到符合的返回它第一次出现的位置的下标
9.lastIndexOf
最后一次出现的位置的下标
10.join 连接
11.concat 两个数组拼连成一个数组
12.sort 排序
① 没有参数 按每个元素的首字母排序(即字母顺序即字母编码顺序)
②有参数 可以写个函数
eg:arr.sort( function (a,b){
return a-b --->小到大
return b-a --->大到小
} )
②---
1、every 全真为真,一假为假,返回的是true/false
与之对应的
some 一真为真,一假为假,同样返回的是true/false
2.map
1.必须有返回值,否则返回undefined
2.返回值是一个数组
3.返回一个要利用原数组进行运算后的数组,或者在一个数组对象中要拿到某一个属性,并且返回一个新数组
3.forEach
循环遍历数组的元素 ,相当于for循环,无返回值
4.filter
对元素进行过滤,符合的形成新的数组
eg:arr.filter(function (value,index){
函数语句体
} )
二.其他方法
1.fil 填充
给定的值或者变量填充数组;一个值(参数)填充整个数组
2.includes 包含
判断一个数组是否包含一个指定的值 有--返回true;无--返回false
如果是两个参数,啧第二个参数为下标,从此下标开始查找是否有包含的值
3.find
检查数组每一项,返回第一个符合的元素
4.findIndex
返回符合元素的下标
5.reduce 累加器 (可几首函数作为累加器)
从左到右向前数组中的项做累加
eg: let r = [1,2,33,44,5,6];
a 代表上一个值
b 代表当前的值
index 代表当前值的下标
self 代表原数组
r.reduce( function (a,b,index,self){
return a+b
}
)
而reduceRight 是从末尾开始向前数组中的项做累加
三.静态方法
1.Array.from()
①可将两类对象(1.类似数组的对象2.可遍历的对象)转成真正的数组
也可以②将字符串转成数组
eg:Array.from('asdf')
输出:['a','s','d','f']
也可以③将set数据转成数组
let a = new Set(['a','b']) (创建无重复元素)
输出Array.from(a)--->['a','b']
④map数据转成数组
eg:let c = new Map( [ [2,3],[5,6],[7,9] ] )
Array.from(c)===>[ [2,3],[5,6],[7,9] ]
四. Es6新方法
entries,keys,values都是用于遍历数组,他们都返回一个遍历器对象
可以用for...of进行遍历
entries 对键值对的遍历
keys 对键名的遍历
values 对键值的遍历
eg:for( let index of ['c','d'].keys() )
输出index为 0,1 (无键名下标代替)
.values ---> 'c','d'
.entries--->0:'c',1:'d'