gpt4 book ai didi

javascript - 过滤数组以产品 checkin 事件记录

转载 作者:行者123 更新时间:2023-12-02 23:16:26 25 4
gpt4 key购买 nike

我有一个事件源,它包含我们网站的许多不同类型的事件。

一种类型的事件是签到。当用户 checkin 和 checkout 网站时进行记录。

记录条目看起来像这样

Entryable_id | Entry_type | Action | timestamp

1 Ticket Update 12:01
3 Ticket New 12:07
4 CheckIn ClockedIn 14:30
4 CheckIn ClockedOut 17:30

我想要做的是创建一个包含条目的数组,如下所示

Entryable_id | ClockedIn| ClockedOut
4 14:30 17:30

到目前为止我所拥有的是

{

let staffCheckins = []
let checkinRecord = []


if (this.DiaryStore.entries.length) {
this.DiaryStore.entries.forEach(function(val) {
if (val.entryable_type === 'CheckIn') {

staffCheckins.push(val);
return val
}
})
}

staffCheckins.forEach(function(val) {

if (val.action === "ClockedIn") {
checkinRecord[val.entryable_id] = {
clockedIn: val.created_at,
user: val.user
}
}


if (val.action === "ClockedOut") {
checkinRecord[val.entryable_id] = {
clockedOut: val.created_at
}

}

})



console.log(completeCheckin)
},

这给出了

1: clockedIn: "2019-07-22T10:26:45.000000Z",
2: clockedIn: "2019-07-22T12:38:02.000000Z"

所以我认为当我这样做时它没有附加到 key

checkinRecord[val.entryable_id] =  {clockedOut: val.created_at}

除此之外,这一切都感觉一团糟。有没有更好的方法来过滤并获取我需要的内容?

谢谢

最佳答案

您需要合并属性,而不是分配给新对象

  staffCheckins.forEach(function(val) {
if (!checkinRecord[val.entryable_id]) {
checkinRecord[val.entryable_id] = {}
}
if (val.action === "ClockedIn") {
checkinRecord[val.entryable_id] = {
...checkinRecord[val.entryable_id],
clockedIn: val.created_at,
user: val.user
}
} else (val.action === "ClockedOut") {
checkinRecord[val.entryable_id] = {
...checkinRecord[val.entryable_id],
clockedOut: val.created_at
}
}
}

关于javascript - 过滤数组以产品 checkin 事件记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57147045/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com