[英]Get array of distinct date(not time) from array of objects in javascript
嘿,我正在 reactjs 做一个出勤项目,我遇到了一个问题,我收到了一系列的出勤,例如(在过去两周的范围内)。 我只需要过滤一组不同的日期,而不是时间,而只是日期。 (一个日期的时间可以不同)
let dates = [
{ id: 51, attendanceTime: "2022-12-26T06:07:02.000Z" },
{ id: 52, attendanceTime: "2022-11-26T06:07:36.000Z" },
{ id: 53, attendanceTime: "2022-10-12T06:28:43.000Z" },
{ id: 54, attendanceTime: "2023-01-01T06:48:53.000Z" },
{ id: 55, attendanceTime: "2022-12-26T06:56:23.000Z" },
];
我已经尝试过方法,但 gettime() 不仅比较所有日期,getDate() 只比较日而不是月和年,所以我需要进行过滤,以便它只区分日期(日、月、年)并过滤我的数组不同的数组。 我需要这样的结果
const result = [
{ id: 51, attendanceTime: "2022-12-26T06:07:02.000Z" },
{ id: 52, attendanceTime: "2022-11-26T06:07:36.000Z" },
{ id: 53, attendanceTime: "2022-10-12T06:28:43.000Z" },
{ id: 54, attendanceTime: "2023-01-01T06:48:53.000Z" },
];
这是不同日期数组的必需结果
你可以尝试这样的事情:
let dates = [
{id: 51, attendanceTime: '2022-12-26T06:07:02.000Z'},
{id: 52, attendanceTime: '2022-11-26T06:07:36.000Z' },
{id: 53, attendanceTime: '2022-10-12T06:28:43.000Z'},
{id: 54, attendanceTime: '2023-01-01T06:48:53.000Z'},
{id: 55, attendanceTime: '2022-12-26T06:56:23.000Z'}
];
let distinct = [];
for(let i = 0; i < dates.length; i++){
let dateFromDates = dates[i].attendanceTime.split("T");
let duplicate = distinct.filter(dateFromDistinct => dateFromDistinct == dateFromDates[0]);
if(duplicate.length == 0){
distinct.push(dateFromDates[0]);
}
}
console.log(distinct);
此外,日期格式必须采用您共享的格式。
您可以使用 Array.filter() 和 Array.substring() 来查找唯一值
let dates = [ {id: 51, attendanceTime: '2022-12-26T06:07:02.000Z'}, {id: 52, attendanceTime: '2022-11-26T06:07:36.000Z' }, {id: 53, attendanceTime: '2022-10-12T06:28:43.000Z'}, {id: 54, attendanceTime: '2023-01-01T06:48:53.000Z'}, {id: 55, attendanceTime: '2022-12-26T06:56:23.000Z'} ]; let uniqueDate=dates.filter((value,ind,arr)=>arr.findIndex(value2=>(value2.attendanceTime.substring(0, 10)===value.attendanceTime.substring(0, 10)))===ind) console.log('Original',dates, '\nUnique',uniqueDate)
在职的
filter() 方法使用通过 function 提供的测试的元素创建新数组。
语法: dates.filter(function(currentValue, index, arr), thisValue)
substring() 方法从字符串中提取两个索引之间的字符,并返回 substring。
语法: string.substring(start, end)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.