为了账号安全,请及时绑定邮箱和手机立即绑定

遍历对象数组并根据多个条件对其进行过滤

遍历对象数组并根据多个条件对其进行过滤

幕布斯6054654 2022-10-08 15:18:28
我有一个包含大量重复/无用数据的对象数组。我需要根据客户 id 进行过滤并选择具有最新日期的对象。数据看起来像这样:let data = [  {    CUSTOMER_PERMANENT_ID: "2495",    EMAIL: "abs@gmail.com",    EVENT_ACTIVATION_TIME: "2019-10-25 13:57:38.79",  },  {    CUSTOMER_PERMANENT_ID: "2495",    EMAIL: "abs@gmail.com",    EVENT_ACTIVATION_TIME: "2019-10-28 20:04:49.016",  },  {    CUSTOMER_PERMANENT_ID: "2495",    EMAIL: "abs@gmail.com",    EVENT_ACTIVATION_TIME: "2019-10-28 20:04:49.019",  },  {    CUSTOMER_PERMANENT_ID: "5995",    EMAIL: "John@gmail.com",    EVENT_ACTIVATION_TIME: "2019-10-28 17:24:10.98",  }]我尝试了以下功能,但它仅在有两个重复对象时才有效,如果有两个以上,则返回所有对象。public fixDcppSelectedClientData() {    let result = [];    for (let item of this.arr) {      for (let checkingItem of this.arr) {        if (          this.arr.indexOf(item) !=            this.arr.indexOf(checkingItem) &&          item.CUSTOMER_PERMANENT_ID == checkingItem.CUSTOMER_PERMANENT_ID &&          new Date(item.EVENT_ACTIVATION_TIME).getTime() <            new Date(checkingItem.EVENT_ACTIVATION_TIME).getTime()        ) {          if (result.indexOf(checkingItem) == -1) {            result.push(checkingItem);          }        }      }    }    console.log("filtered data is ", result);  }我需要更多地研究这个话题,但是如果有人能在此期间提供帮助,那就太好了。
查看完整描述

2 回答

?
ibeautiful

TA贡献1993条经验 获得超5个赞

let id = "2495"

const query = data

    .filter( obj => obj.CUSTOMER_PERMANENT_ID === id )

    .sort( (obj1, obj2) => 

        (obj1.EVENT_ACTIVATION_TIME < obj2.EVENT_ACTIVATION_TIME) ? 1 : -1 

    )


console.log('latest', query[0]);

console.log('second to latest', query[1]);

console.log('all with this id', query)


查看完整回答
反对 回复 2022-10-08
?
忽然笑

TA贡献1806条经验 获得超5个赞

此代码过滤器重复 id


var newArr = data.filter((x, index, self) =>

  index === self.findIndex((t) => (

    t.CUSTOMER_PERMANENT_ID === x.CUSTOMER_PERMANENT_ID)));


console.log(newArr);


查看完整回答
反对 回复 2022-10-08
  • 2 回答
  • 0 关注
  • 109 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号