鍍金池/ 問答/數(shù)據(jù)分析&挖掘  HTML/ js 數(shù)組對象去重

js 數(shù)組對象去重

let array1 = [{id:'1'},{id:'2'},{id:'3'}]
let array2 = {id:'1'}

如果 array1 中存在 array2 就刪除,如果不存在就添加,
數(shù)組對象怎么判斷?

我現(xiàn)在寫的:
`

  let array1 = [{id:'1'},{id:'2'},{id:'3'}]
  if(array1.length){
    for(let i=0; i<=array1 .length; i++){  
      if(array1 [i].id == array2 .id){
        array1.splice(i,1)
      }else{
        array1.push(file)
      }
    }
  }else{
    array1.push(file)
  }`
  
  
回答
編輯回答
影魅
var array1 = [{ id: '1' }, { id: '2' }, { id: '3' }];
var array2 = [{ id: '1' }];
function filter (...args) {
  var map = {}
  args.forEach(arr=>{
    arr.forEach(v=>{
      map[v.id] = v
    })
  })
  return Object.entries(map).map(v=>v[1])
}
2018年1月22日 00:31
編輯回答
舊螢火
let array1 = [{id: '1'}, {id: '2'}, {id: '3'}];
let array2 = {id: '1'};
array1 = array1.filter(({id}) => id !== array2.id);
console.log(array1)

如果array2是數(shù)組就這樣寫

let array1 = [{id: '1'}, {id: '2'}, {id: '3'}];
let array2 = [{id: '1'}];
array1 = array1.filter(({id}) => !array2.some(item => item.id === id));
console.log(array1)
2017年3月26日 17:02
編輯回答
墻頭草
let array1 = [{id:'1'},{id:'2'},{id:'3'}]
let array2 = {id:'2'}

let index = -1;
if((index = array1.findIndex(v=>v.id==array2.id))>-1){
  array1.splice(index,1)
}else{
  array1.push(array2);
}
console.log(array1)
2018年7月8日 17:39