数组对象 去重 (id,name)
let a=[{id:1,value:'this'},{id:1,value:'is'},{id:1,value:'is'}] let set=[...new Set(a.map(item=>item.id))] a=a.filter((item,index)=>item.id===set[index]) let ids = fileList.map((value) => value.name); let idsSet = new Set(ids); if (idsSet.size !== ids.length) { this.$message.warning("附件重名,请修改文件名后重新上传"); let obj = {}; //利用obj 属性不能重复 fileList = fileList.reduce((cur, next) => { obj[next.name] ? "" : (obj[next.name] = true && cur.push(next)); return cur; }, []); }
let a=[{id:1,value:'this1'},{id:2,value:'is1'},{id:1,value:'is222'},{id:2,value:'is222'}] //let set=[...new Set(a.map(item=>item.id))] //console.log(a.filter((item,index)=>item.id===set[index])); //后重复的会覆盖之前的 function uniq(arr,key){ return Object.values(arr.reduce((ret,e)=>{ ret[e[key]]=e return ret },{})) } function uniqForObject(arr){ let map=new Map() for(let item of arr){ if(!map.has(item.id)){ map.set(item.id,item) } } return [...map.values()] }