发布于 5年前

RxJs distinct 操作符完成数组去重

// 数组都是数字
let arr = [1, 2, 1, 5, 3, 4, 5, 6]
arr = await Rx.Observable.from(arr)
    .distinct()
    .toArray()
    .toPromise()
// [ 1, 2, 5, 3, 4, 6 ]

// 数组都是对象,指定 key 值去重
let arr1 = [{ id: 1, name: '张三' }, { id: 2, name: '李四' }, { id: 1, name: '张三' }, { id: 3, name: '王五' }]
arr1 = await Rx.Observable.from(arr1)
    .distinct(it => it.id)
    .toArray()
    .toPromise()
// [ { id: 1, name: '张三' },
// { id: 2, name: '李四' },
// { id: 3, name: '王五' } ]

arr1 = await Rx.Observable.from(arr1)
    .distinct(it => it.name)
    .toArray()
    .toPromise()
// [ { id: 1, name: '张三' },
// { id: 2, name: '李四' },
// { id: 3, name: '王五' } ]

相关文章

©2020 edoou.com   京ICP备16001874号-3