js数据处理总结

背景

日常开发过程中,我们经常会碰到需要对一些数据进行处理的情况,索性就整理个文档吧,方便日后查阅。

javascript 中数组对象求交集、并集、补集

如下代码:

    const a = [
        {
        'categoryId': 1,
        'categoryIdLevelOne': 750611334,
        'categoryIdLevelThree': 750611336,
        'categoryIdLevelTwo': 750611335,
        'id': 2697,
        'level': 3,
        'shopId': 12430,
        'skipLayoutFlag': false,
        'status': 1
    },
    {
        'categoryId': 2,
        'categoryIdLevelOne': 750611472,
        'categoryIdLevelTwo': 750611473,
        'id': 2701,
        'level': 2,
        'shopId': 12430,
        'skipLayoutFlag': false,
        'status': 2
    },
    {
        'categoryId': 3,
        'categoryIdLevelOne': 750611487,
        'categoryIdLevelTwo': 750611488,
        'id': 2702,
        'level': 2,
        'shopId': 12430,
        'skipLayoutFlag': false,
        'status': 1
    }
    ]
    const b = [
        {
        'categoryId': 2,
        'categoryIdLevelOne': 750611334,
        'categoryIdLevelThree': 750611336,
        'categoryIdLevelTwo': 750611335,
        'id': 2697,
        'level': 3,
        'shopId': 12430,
        'skipLayoutFlag': false,
        'status': 1
    },
    {
        'categoryId': 3,
        'categoryIdLevelOne': 750611472,
        'categoryIdLevelTwo': 750611473,
        'id': 2701,
        'level': 2,
        'shopId': 12430,
        'skipLayoutFlag': false,
        'status': 2
    },
    {
        'categoryId': 4,
        'categoryIdLevelOne': 750611487,
        'categoryIdLevelTwo': 750611488,
        'id': 2702,
        'level': 2,
        'shopId': 12430,
        'skipLayoutFlag': false,
        'status': 1
    }
    ]
复制代码
  • 交集
const c = a.filter( a => b.some(b => b.categoryId  === a.categoryId))
复制代码
  • 补集(差集)
const d = a.filter(x => b.every(y => y.categoryId !== x.categoryId))
复制代码
  • 并集
const e = b.filter(y => a.every(x => x.categoryId !== y.categoryId)).concat(a)
复制代码

转载于:https://juejin.im/post/5c8b54fa5188257dfa07eb3f

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值