escapeCn 2022-05-09 13:54 采纳率: 66.7%
浏览 306
已结题

js 获取数组对象中,不同id,相同日期和名称中最大的一天


                            const list = [
                            {
                              name: "张三",
                              id: 1,
                              amount: 1,
                              balance: 1,
                              date: "2022-01-02",
                            },
                            {
                              name: "张三",
                              id: 2,
                              amount: 1,
                              balance: 1,
                              date: "2022-01-04",
                            },
                            {
                              name: "张三",
                              id: 3,
                              amount: 15,
                              balance: 15,
                              date: "2022-01-05",
                            },
                            {
                                name: '张三',
                                id: 33,
                                amount: 33,
                                balance: 33,
                                date: '2022-01-05'
                            },
                            {
                              name: "张三",
                              id: 4,
                              amount: 1,
                              balance: 1,
                              date: "2022-02-01",
                            },
                            {
                              name: "张三",
                              id: 5,
                              amount: 1,
                              balance: 1,
                              date: "2022-02-02",
                            },
                            {
                              name: "张三",
                              id: 6,
                              amount: 26,
                              balance: 26,
                              date: "2022-02-06",
                            },
                            {
                                name: '张三',
                                id: 66,
                                amount: 66,
                                balance: 66,
                                date: '2022-02-06'
                            },
                            {
                              name: "李四",
                              id: 7,
                              amount: 1,
                              balance: 1,
                              date: "2022-01-02",
                            },
                            {
                              name: "李四",
                              id: 8,
                              amount: 1,
                              balance: 1,
                              date: "2022-01-03",
                            },
                            {
                              name: "李四",
                              id: 9,
                              amount: 215,
                              balance: 215,
                              date: "2022-01-05",
                            },
                            {
                              name: "李四",
                              id: 10,
                              amount: 1,
                              balance: 1,
                              date: "2022-02-01",
                            },
                            {
                              name: "李四",
                              id: 11,
                              amount: 1,
                              balance: 1,
                              date: "2022-02-03",
                            },
                            {
                              name: "李四",
                              id: 12,
                              amount: 225,
                              balance: 225,
                              date: "2022-02-05",
                            },
                            {
                              name: "李四",
                              id: 13,
                              amount: 1,
                              balance: 1,
                              date: "2022-03-01",
                            },
                            {
                              name: "李四",
                              id: 14,
                              amount: 1,
                              balance: 1,
                              date: "2022-03-05",
                            },
                            {
                              name: "李四",
                              id: 15,
                              amount: 236,
                              balance: 236,
                              date: "2022-03-06",
                            },
                            {
                              name: "李四",
                              id: 16,
                              amount: 212,
                              balance: 212,
                              date: "2022-03-06",
                            },
                            {
                              name: "李四",
                              id: 17,
                              amount: 234,
                              balance: 234,
                              date: "2022-03-06",
                            }
                          ];
                          [{
                                name: '张三',
                                id: 33,
                                amount: 15,
                                balance: 15,
                                date: '2022-01-05'
                            },{
                                name: '张三',
                                id: 66,
                                amount: 26,
                                balance: 26,
                                date: '2022-02-06'
                            },{
                                name: '李四',
                                id: 9,
                                amount: 215,
                                balance: 215,
                                date: '2022-01-05'
                            },{
                                name: '李四',
                                id: 12
                                amount: 225,
                                balance: 225,
                                date: '2022-02-05'
                            },{
                                name: '李四',
                                id: 17,
                                amount: 234,
                                balance: 234,
                                date: '2022-03-06'
                            }]
  • 写回答

13条回答 默认 最新

  • hyh123a 全栈领域新星创作者 2022-05-09 13:58
    关注

    OK 稍等


    代码如下

    const list = [
        {
          name: "张三",
          id: 1,
          amount: 1,
          balance: 1,
          date: "2022-01-02",
        },
        {
          name: "张三",
          id: 2,
          amount: 1,
          balance: 1,
          date: "2022-01-04",
        },
        {
          name: "张三",
          id: 3,
          amount: 15,
          balance: 15,
          date: "2022-01-05",
        },
        {
            name: '张三',
            id: 33,
            amount: 33,
            balance: 33,
            date: '2022-01-05'
        },
        {
          name: "张三",
          id: 4,
          amount: 1,
          balance: 1,
          date: "2022-02-01",
        },
        {
          name: "张三",
          id: 5,
          amount: 1,
          balance: 1,
          date: "2022-02-02",
        },
        {
          name: "张三",
          id: 6,
          amount: 26,
          balance: 26,
          date: "2022-02-06",
        },
        {
            name: '张三',
            id: 66,
            amount: 66,
            balance: 66,
            date: '2022-02-06'
        },
        {
          name: "李四",
          id: 7,
          amount: 1,
          balance: 1,
          date: "2022-01-02",
        },
        {
          name: "李四",
          id: 8,
          amount: 1,
          balance: 1,
          date: "2022-01-03",
        },
        {
          name: "李四",
          id: 9,
          amount: 215,
          balance: 215,
          date: "2022-01-05",
        },
        {
          name: "李四",
          id: 10,
          amount: 1,
          balance: 1,
          date: "2022-02-01",
        },
        {
          name: "李四",
          id: 11,
          amount: 1,
          balance: 1,
          date: "2022-02-03",
        },
        {
          name: "李四",
          id: 12,
          amount: 225,
          balance: 225,
          date: "2022-02-05",
        },
        {
          name: "李四",
          id: 13,
          amount: 1,
          balance: 1,
          date: "2022-03-01",
        },
        {
          name: "李四",
          id: 14,
          amount: 1,
          balance: 1,
          date: "2022-03-05",
        },
        {
          name: "李四",
          id: 15,
          amount: 236,
          balance: 236,
          date: "2022-03-06",
        },
        {
          name: "李四",
          id: 16,
          amount: 212,
          balance: 212,
          date: "2022-03-06",
        },
        {
          name: "李四",
          id: 17,
          amount: 234,
          balance: 234,
          date: "2022-03-06",
        }
      ];
      [{
            name: '张三',
            id: 33,
            amount: 15,
            balance: 15,
            date: '2022-01-05'
        },{
            name: '张三',
            id: 66,
            amount: 26,
            balance: 26,
            date: '2022-02-06'
        },{
            name: '李四',
            id: 9,
            amount: 215,
            balance: 215,
            date: '2022-01-05'
        },{
            name: '李四',
            id: 12,
            amount: 225,
            balance: 225,
            date: '2022-02-05'
        },{
            name: '李四',
            id: 17,
            amount: 234,
            balance: 234,
            date: '2022-03-06'
        }]
    
    let totalDict = {};
    list.forEach(
        item=>{
            let dates = item["date"].split("-");
            let name = item["name"];
            let year = dates[0];
            let month = dates[1];
            let day = dates[2];
            if (!totalDict.hasOwnProperty(name)) {
              totalDict[name] = {};
            }
            if (!totalDict[name].hasOwnProperty(year)) {
              totalDict[name][year] = {};
            }
            if (!totalDict[name][year].hasOwnProperty(month)) {
              totalDict[name][year][month] = "0";
            }
            if (day > totalDict[name][year][month]) { 
              totalDict[name][year][month] = {
                  'flag': false,
                  'day': day
              };
            }
           
        }
    );
    
    let newList = [];
    
    list.forEach((item) => {
      let name = item["name"];
      let dates = item["date"].split("-");
      let year = dates[0];
      let month = dates[1];
      let day = dates[2];
      if (
        totalDict[name][year][month]['day'] === day && totalDict[name][year][month]['flag'] === false
      ) {
        newList.push(item);
        totalDict[name][year][month]['flag'] === true
      }
    });
    console.log(newList);
    // 需要整理成如下格式
    // [{
    //     name: '张三',
    //     amount: 15,
    //     balance: 15,
    //     date: '2022-01-05'
    // },{
    //     name: '张三',
    //     amount: 26,
    //     balance: 26,
    //     date: '2022-02-06'
    // },{
    //     name: '李四',
    //     amount: 215,
    //     balance: 215,
    //     date: '2022-01-05'
    // },{
    //     name: '李四',
    //     amount: 225,
    //     balance: 225,
    //     date: '2022-02-05'
    // },{
    //     name: '李四',
    //     amount: 236,
    //     balance: 236,
    //     date: '2022-03-06'
    // }]
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(12条)

报告相同问题?

问题事件

  • 系统已结题 5月18日
  • 已采纳回答 5月10日
  • 修改了问题 5月9日
  • 赞助了问题酬金10元 5月9日
  • 展开全部

悬赏问题

  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行