一些基础的方法梳理

138 阅读1分钟

过滤重复值

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