今天在开发过程中实现顶部菜单和底部菜单关联的功能,发现重复点击顶部菜单时候导致界面视图菜单重复展示,于是想到数组去重解决这一Bug.
目前最简洁的写法就是用ES6的set去重
let tabList=[{"name":"系统监控","path":"/monitor"},{"name":"银行信息","path":"/bankinfo"},{"name":"银行信息","path":"/bankinfo"}]
function unique(arr){
return Array.from(new Set(arr)) //或者写成 return [...new Set(arr)]
}
console.log(unique(tabList))
2.借助双for循环,比对唯一属性去重
let tabList=[{"name":"系统监控","path":"/monitor"},{"name":"银行信息","path":"/bankinfo"},{"name":"银行信息","path":"/bankinfo"}]
function unique(arr){
for(let i=0;i<arr.length;i++){
for(let j=i+1;j<arr.length;j++){
if(arr[i].name===arr[j].name){
arr.splice(j,1) //删除后面重复元素
}
}
}
return arr
}
console.log(unique(tabList))