J'ai un flux d'activité, il contient un certain nombre de types d'activité différents pour notre site.
Un type d'activité est à la vérification. quels journaux lorsqu'un utilisateur vérifie et les cutteries d'un site. p>
Les entrées d'enregistrement ressemblent à p> ce que je veux faire est de créer un tableau avec des entrées dedans comme p> jusqu'à présent ce que j'ai est p> qui donne p> checkinRecord[val.entryable_id] = {clockedOut: val.created_at}
3 Réponses :
Vous devez fusionner l'attribut, au lieu d'assigner à un nouvel objet
Je n'ai donc pas eu de tester parce que je suis dehors et que vous pourriez essayer quelque chose comme ça. Si elles objectent entraable_id code> n'existent pas dans l'objet actuel de la matrice, il créera un nouvel objet avec les membres, sinon il trouvera l'objet et mettra à jour les champs {
let staffCheckins = [];
let checkinRecord = [];
if (this.DiaryStore.entries.length) {
staffCheckins = this.DiaryStore.filter(val => val.entryable_type.toLowerCase() === 'checkin');
}
staffCheckins.forEach(function(val, i) {
let { action, entryable_id, created_at, user } = val;
if (!entryable_id in checkinRecord[i]) {
checkinRecord[i] = {
clockedIn: created_at,
clockedOut: created_at,
user
}
}
if (action.toLowerCase() === 'clockedin') {
checkinRecord[i] = {
...checkinRecord[i],
clockedIn: created_at,
user
}
} else if (action.toLowerCase() === 'clockedout') {
checkinRecord[i] = {
...checkinRecord[i],
clockedOut: created_at
}
}
});
}
Vous pouvez faire toute cette opération dans un filtre Réduire la combinaison et créer un objet de groupeBy à l'aide du Une fois la boucle terminée, obtenez des valeurs de cet objet P> p> Entryable_id code> comme touches. <script>
const data = [{
Entryable_id: 1,
Entry_type: 'Ticket',
Action: 'Update',
timestamp: '12:01'
},
{
Entryable_id: 3,
Entry_type: 'Ticket',
Action: 'New',
timestamp: '12:07'
},
{
Entryable_id: 4,
Entry_type: 'CheckIn',
Action: 'ClockedIn',
timestamp: '14:30'
},
{
Entryable_id: 4,
Entry_type: 'CheckIn',
Action: 'ClockedOut',
timestamp: '17:30'
}
]
</script>
Essayez-vous simplement d'ajouter des objets au tableau Checkinrecord ou de les mettre à jour si elles existent déjà?
Lorsque vous remplissez votre matrice de chantCheckins, vous voudrez peut-être utiliser Array.filter comme ceci:
StaffCheckins = this.diarystore.tries.filter (Val => Val.Entryable_type === 'Checkin') Code>