数组对象去重总结
var arrInfo=[{roleId:"239','roleName':'基本信息'},{roleId:"216','roleName':'测试数据展示'},{roleId:"239','roleName':'基本信息'}] 1. let obj = {} arrInfo = arrInfo.reduce (function(item,next){ obj[next.roleId] ? ' ' : obj[next.roleId] = true && item.push(next) return item; },[]) console.log(arrInfo) //输出内容展示 [{roleId:'239','roleName':''基本信息'},{roleId:'216','roleName':'测试数据展示'}] 2. var arr = [ ] ; //想法判断对象中是否存在某个key var obj = { }; arrInfo = arrInfo.forEach(function(ele,index){ //ele 是数组中的每一个对象 index是指下标 if(!obj[arrInfo[index] .roleId){ arr.push(arrInfo[index]) obj[arrInfo[index].roleId] = true } }) 3.e6数组去重方法 const arr = ['张三','张三','三张三'] let set = new Set(arr); // set 自带去重 // Set { '张三', '三张三' } console.log(set); console.error(Array.from(set)); // [ '张三', '三张三' ] 4.多维数组将为一维数组的方法展示 let arr = [[1,2,3],[1,2],[1,4]] flatten(arr) { //岗位全选到多位数组导致的处理数组方法传值给后台 return [].concat( ...arr.map(x => Array.isArray(x) ? this.flatten(x) : x) ) }, //用法 Array.from(new Set(_this.flatten(arr))) //输出数组展示 console.log(Array.from(new Set(_this.flatten(arr))))