[英]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.