ES6 JS 配列 (オブジェクト) のマージ、重複排除

ケースの要件:

次の 2 つのユーザー配列がある場合、同じユーザー ID を持つものを除外し、それらを新しい配列にマージします

let users1 = [
 {
    
    id:1, name:'tom', age: 20},
 {
    
    id:2, name:'jack', age: 21},
 {
    
    id:3, name:'smith', age: 22}
]

let users2 = [
 {
    
    id:3, name:'smith', age: 22},
 {
    
    id:4, name:'rose', age: 23},
 {
    
    id:5, name:'tina', age: 24},
]

合併後

 [
 {
    
    id:1, name:'tom', age: 20},
 {
    
    id:2, name:'jack', age: 21},
 {
    
    id:3, name:'smith', age: 22},
 {
    
    id:4, name:'rose', age: 23},
 {
    
    id:5, name:'tina', age: 24},
]

達成

最初に ... を使用して新しい配列にマージし、reduce メソッドを使用してオブジェクト内の同じ ID を持つ値を削除します

let newArr = [...users1, ...users2]
let obj = {
    
    }
let newUsers = newArr.reduce((item, next) => {
    
    
  obj[next.id] ? '' : obj[next.id] = true && item.push(next)
  return item
}, [])

おすすめ

転載: blog.csdn.net/lovoo/article/details/129813025
おすすめ