Js数据处理 数组篇

2020.06.16
评论

变幻莫测

splice

数组截断,改变元素,返回被截取值

arr.splice(index,count,item1,.....,itemX)

参数
参数描述
index*,开始下标
count截取长度,如果没有则默认后续所有
item1,.....,itemX截取后可被替换的值,默认为空
小技巧:
  1. arr.splice(index,1) 删除arr的index内容
  2. arr.splice(index,1,newVal) 将arr的index内容更换为newVal

slice

截取数组开始到结束的下标数据,并返回被截取的新数组

arr.slice(start,end)

参数
参数描述
start*,起始下标,如果为负数,意为倒数第几个
end结束下标,如果为负数,则从数组末尾开始算

sort

数组排序

arr.sort(fn)

参数
参数描述
fn排序方法,携带两个参数,前一个item和当前item。不传结果默认升序
小技巧:
  1. arr.sort((a,b)=>b-a):大小降序
  2. arr.sort((a,b)=>a-b):大小升序

Array.from

类数组转换为数组

Array.from(arr,fn)

参数
参数描述
arr*,类数组
fn每次转换时的回调,类似map

copyWithin

数组内容复制移位

arr.copyWithin(target,start,end)

参数
参数描述
target*,起始位置
start/end选写,被复制的起始/结束位置,负数为反向,前包后不包

轮回不止

flatMap

将数组当前项解析为多项,类似于map

arr.flatMap(fn)

参数
参数描述
fn*,回调函数,当前数组项,返回一个一维数组,如 item => [ item , item+1 ]

map

遍历处理数组的每项

arr.map(fn)

参数
参数描述
fn*,回调函数,携带参数item\index\arr(当前项\当前项下标\原数组),需要返回处理后的值
thisthis的指向,默认为全局

forEach

遍历数组的每项

arr.forEach(fn)

参数
参数描述
fn*,回调函数,携带参数item\index\arr(当前项\当前项下标\原数组)
thisthis的指向,默认为全局

some\every

检查数组 有一个\每个 是否满足自定义条件,返回bool

arr.some\every(fn,this)

参数
参数描述
fn*,回调函数,携带参数item\index\arr(当前项\当前项下标\原数组),需要返回一个bool
thisthis的指向,默认为全局

reduce

递归式处理

arr.reduce(fn,init)

参数
参数描述
fn*,回调函数,携带参数total\item\index\arr(上一次结果\当前项\当前项下标\原数组),需要返回一个值
init第一次的初始值

filter

数组过滤,保留符合条件的

arr.filter(fn)

参数
参数描述
fn*,回调函数,携带参数item\index\arr(当前项\当前项下标\原数组),需要返回一个bool条件
thisthis的指向,默认为全局

找找找

find

获取第一个符合条件的item,没有为undefined

arr.find(fn,this)

参数
参数描述
fn*,回调函数,携带参数item\index\arr(当前项\当前项下标\原数组),需要返回一个bool条件
thisthis的指向,默认为全局

includes

判断指定内容是否存在于数组

arr.includes(x)

参数
参数描述
x*,指定内容

findIndex

获取指定条件第一次出现的item下标,没有为-1

arr.findIndex(fn)

参数
参数描述
fn*,回调函数,携带参数item\index\arr(当前项\当前项下标\原数组),需要返回一个bool条件

indexOf

获取指定内容在数组出现的第一个下标,没有为-1

arr.indexOf(x,fromindex)

参数
参数描述
x*,指定内容
fromindex开始查找的下标,默认0

普普通通

  • Array.isArray(arr):类数组转换为数组
  • 对y.of(x,y...):将传入参数转换为数组
  • arr.push():往数组末尾添加指定值,一个参数添加一个,并返回新长度
  • arr.unshift():往数组最前面添加指定值,一个参数添加一个,且返回新长度
  • arr.pop():删除并返回数组最后一项
  • arr.shift():删除并且返回数组第一项
  • arr.reverse():将数组内容反排
  • arr.flat(x):将数组扁平化,x默认为1,以为降低数组一级,Infinity为一直降低到一级
  • arr.join(x):将数组以x间隔合并为字符串,默认为空
  • arr.concat(arr2,arr3):将数组和指定数组合并
  • arr.entries()/keys()/values():for..of遍历器扩展,将内容遍历内容为[下标,值]/下标/值
  • arr.fill(item):空数组填充,将empty数组内容填充为item