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'
}]
js 获取数组对象中,不同id,相同日期和名称中最大的一天
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
13条回答 默认 最新
关注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' // }]本回答被题主选为最佳回答 , 对您是否有帮助呢?评论 打赏 举报 编辑记录解决 1无用 1