过滤重复值
function flat(list=[]){
return [...new Set(list)]
}
过滤重复对象
function filterData(data=[],name='id'){
//data是传入的数组对象 name是要过滤的属性
let mapList= new Map()
data.forEach((item)=>{
if(mapList.get(item[name])){
}else{
mapList.set(item[name],item)
}
})
return [...mapList.key()]
}
数组扁平化
function flat(list=[]){
rerutn list.reduce((pre,cur)=>{
rerutn pre.concat(Array.isArray(cur)?flat(cur):[cur])
},[])
}
数组对象转树结构
function tree(list:[],arr=[]){
let mapList = new Map()
list.forEach((item)=>mapList.set(item.id,item))
list.forEach((item)=>{
const data = mapList.get(item.pid)
//pid为父级ID
if(data){
//存在父ID 存进children中
(data.children||(data.children=[]).push(item))
}else{
无父级ID 直接存入根数组
arr.push(props)
}
})
return arr
}
树结构转数组对象
function treeFlat(arr=[]){
return arr.reduce((cur,{children=[],...props})=>{
return cur.concat([props],treeFlat(children))
},[])
}
这是这几天复习的东西 先写到这把 2021-10-12 19:02