1、单数组,自身去重

let data = ["张三","李四","王五","赵六","张三","田七"]
let set = new Set(data)
console.log(set)

2、单数组对象,自身去重

let data = [
  {id:1,name:"张三"},
  {id:2,name:"李四"},
  {id:1,name:"王五"},
  {id:4,name:"赵六"},
  {id:5,name:"孙七"},
]
let obj = {}
let set = data.reduce((cur,next) => {
  obj[next.id] ? "" : obj[next.id] = true && cur.push(next);
  return cur;
},[]) 
//这里演示的是:如果有相同id,就去掉
console.log(set) 

3、合并两个数组,并去重

let a = [1,2,3];
let b = [1,3,5,6];
let c = [...new Set([...a,...b])]
console.log(c)

4、合并两个数组对象,并去重

let arr1 = [
  {id:1,name:"张三"},
  {id:2,name:"李四"},
  {id:3,name:"王五"},
  {id:4,name:"赵六"},
  {id:5,name:"孙七"}
]
let arr2 = [
  {id:1,name:"张三"},
  {id:2,name:"李四"},
  {id:6,name:"陈八"},
]
let newArr = [...arr1, ...arr2]
let obj = {}
let result = newArr.reduce((item, next) => {
  obj[next.id] ? '' : obj[next.id] = true && item.push(next)
  return item
}, [])
console.log(result)

5、去重:两个数组对象A,B,获取A中减去含有B的部分

let a = [
  {id:1,name:"张三"},
  {id:2,name:"李四"},
  {id:3,name:"王五"},
  {id:4,name:"赵六"},
  {id:5,name:"孙七"}
]
let b = [
  {id:1,name:"张三"},
  {id:2,name:"李四"},
  {id:3,name:"王五"},
]
b.map(item=>{ 
  a = a.filter(item2 => item2.id != item.id);
})
console.log(a)

6、取重:两个数组对象A,B,获取A中含有B的部分

//情况1
let arr1 = [
  {id:1,name:"张三"},
  {id:2,name:"李四"},
  {id:3,name:"王五"},
  {id:4,name:"赵六"},
  {id:5,name:"孙七"}
];
let arr2 = [1,2,3]
let obj= arr1.filter(item => arr2.indexOf(item.id) > -1)
console.log(obj)

//情况2
let arr1 = [
  {id:1,name:"张三"},
  {id:2,name:"李四"},
  {id:3,name:"王五"},
  {id:4,name:"赵六"},
  {id:5,name:"孙七"}
];
let arr2 = [
  {id:1,name:"张三"},
  {id:2,name:"李四"},
  {id:3,name:"王五"},
]
let obj= arr1.filter(item => arr2.some(item2=>item2.id == item.id))
console.log(obj)

学到了就要教人,赚到了就要给人,互相学习,共同进步。

Logo

前往低代码交流专区

更多推荐