JS数组方法
数组常用方法
基础方法
1.push()
语法:数组.push(数据1,数据2,数据3,...)
作用:把所有参数按照顺序追加到数组末尾位置
返回值:追加以后数组的长度
直接操作数组
2,pop()
语法:arr.pop(数据1,数据2,数据3)
作用:删除数组的最后一个数据
返回值:被删除的数据
直接操作原始数组
3,unshift()
语法:arr.unshift(数据1,数据2,数据3)
作用:从数组最前面插入数据
返回值:插入后的数组长度
直接操作数组
4,shift()
语法:arr.shift()
作用:删除数组最前面的数据
返回值:删除的数据
直接操作数组
ES3.0
5,reverse()
语法:arr.reverse()
作用:反转数组
返回值:反转以后的数组
直接操作数组
6,sort()
arr.sort()---按位排序
返回值:排序好的数组
直接操作数组
7,splice()
arr.splice(开始截取的索引,截取都少个)---第二个参数可以不写,不写代表截取到末尾
arr.splice(开始索引,多少个,替换数据1,替换数据2 ,替换数据3)---从索引位置开始截取n个字符串,截取掉的位置用替换数据填充
返回值:截取出来的数组
直接操作数组
8,concat()
arr.concat(数组1,数组2...)---追加数据
如果参数是数组,那么把数组拆开,里面每一项追加到原数组后面。如果参数是数据,那么直接追加
返回值:追加好的数组
不改变原始数组
9,slice()
arr.slice(开始索引,结束索引)---获取数组里的某些数据
第一个参数不写表示从头,第二个参数可以不写表示到位。参数可以是负整数,表示length+负整数
返回值:一个包含截取数据的新数组
不改变原始数组
10,join()
arr.join('连接符号')----把数组里面的每一个数据使用连接符号连接在一起
不传递参数默认按照逗号连接
返回值:一个连接好的字符串
不改变原始数组
ES5.0
11,indexOf()
arr.indexOf(数据)---正向查看数组里面指定数据的索引
arr.indexOf(数据,开始索引)---从指定索引位置开始向后查找指定数据的索引
返回值:找到该数据,返回该数据的索引;没找到返回-1
12,lastIndexOf()
arr.indexOf(数据)---反向查看数组里面指定数据的索引
arr.indexOf(数据,开始索引)---从指定索引位置开始向前反向查找指定数据的索引
返回值:找到该数据,返回该数据的索引;没找到返回-1
13,forEach()
arr.forEach(function(item,index,arr){})---取代for循环的作用遍历数组
item:数组每一项,index:数组每一项索引,arr:原始数组
没有返回值
14,map()
arr.map(function(item,index,arr){})----映射数组
返回值:一个新的数组,里面是对原属数组每一个数据的操作,和原数组长度一样
不改变原始数组
15,filter()
arr.filter(function(item,index,arr){})---过滤原始数组中的 数据,把满足条件的数据放在新数组里面
返回值:一个满足条件的新数组
不改变原始数组
16,every()
arr.every(function(item,index,arr){})---判断函数里是不是每一项都满足条件
返回值:一个布尔值。如果数组中每一项都满足条件,那么返回true,如果任意一个数据不满足条件,那么返回false
不改变原始数组
17,some()
arr.some(function(item,index,arr){})---判断数组里是不是有某一项满足条件
返回值:布尔值,只要原始数组中有一个数据满足条件,那么返回true,如果所有数据都不满足条件,那么返回false
ES6(ES2015)
18,find()
arr.find(function(item){})---根据条件找到满足条件的数据
返回值:满足条件的数据
19,findIndex()
arr.findIdenx(function(item){})---根据条件找到满足的数据
返回值:找到满足条件的数据的索引
20,flat()
arr.flat(数字)---拍平数组
数字表示扁平化都少层
返回值:拍平以后的数组
21,flatMap()
arr.flatMap(function(item.index,arr){})---一边拍平一边映射,只能拍平一层
22,fill()
arr.fill(填充的数据,开始索引,结束索引)---使用指定数据填充指定索引位置
填充内容:你想用什么数据填充数组里面的索引位置
开始索引:从哪个索引位置开始填充,默认是0
结束索引:填充到索引位置,默认是末尾
23,includes()
arr.includes(数据)---查看数组里面是否包含某个数据
返回值:布尔值。如果有返回true,如果没有返回false
24,copyWithin()
arr.copyWithin(目标位置,开始索引,结束索引)---用数组里面的内容替换数组里面的内容
目标位置:从哪个索引位置开始替换
开始索引-结束索引:作为替换内容
数组排序
递归二分法
插入排序
数组去重
直接在原始数组操作,每一个数字从自己的下一个开始向后比较,有一样多删除
利用一个新的数组存储,只要新数组里面没有就插入
利用对象不重名的特点进行操作