基于js算法数组去重将多维数组转换为一维数组用法

1.将多维数组转换为一维数组

let arr=[[0,1],[2,3],[3,4,4,[5,6]]]
const newArr=function(arr){
  return arr.reduce((pre,cur)=>pre.concat(Array.isArray(cur)?newArr(cur):cur),[])
}

console.log(newArr(arr)); //[0, 1, 2, 3, 3, 4, 4, 5, 6]

//多维数组转换一维数组

2.数组去重

let arr=[1,2,2,3,4,4,5,2]
let newArr=arr.reduce((pre,cur)=>{
  if(!pre.includes(cur)){
     return pre.concat(cur)  
}else{
  return pre
}
},[])
console.log(newArr) //[1, 2, 3, 4, 5]

//使用includes来判断是否包含 在定义在concat里
//数组去重

 3.计算数组每个元素出现次数

let names=['a','a','b','b','c']
let nameNum = names.reduce((pre,cur)=>{
   if(cur in pre){
  pre[cur]++
}else{
  pre[cur]=1
}
  return pre
},[])
console.log(nameNum)  //[a: 2, b: 2, c: 1]
//数组元素重复比较计算出现次数

 

posted @ 2022-02-27 13:31  cc-front  阅读(203)  评论(0)    收藏  举报