Как я могу манипулировать объектом внутри цикла - PullRequest
0 голосов
/ 10 июля 2019

Итак, я пытаюсь манипулировать объектом во время прохождения цикла. Ну, это не работает .. Как я могу сделать так, чтобы const patient имел свойство lastActivity внутри массива this.model?

JavaScript:

for (const item of data) {
  const patient = this.model.find(
     x => x.linkedUserId === item.userId
  );
  if (patient) {
    patient.lastActivity = item.lastUploadDate;
  }
}

Ответы [ 2 ]

0 голосов
/ 10 июля 2019

Если вы можете хранить данные в this.model как объект, вы можете легко их обновить.Рассмотрим следующие данные модели.

{ 
    "abcd": { linkedUserId: "abcd", name: "user1" },
    "efgh": { linkedUserId: "efgh", name: "user2" },
}

Теперь вы можете обновить модель, выполнив следующие действия.

for (const item of data) {
    this.model[item.userId].lastActivity = item.lastUploadDate;
}

Чтобы получить модель в виде массива, вы можете сделать const model = Object.values(this.model);.

0 голосов
/ 10 июля 2019

patient в самом массиве не обновляется, чтобы убедиться, что вы не обновляете отдельный patient, вы можете использовать for-loop, чтобы вы обязательно обновили patient в массиве.

for (const item of data) {
    for (let i = 0; i < this.model.length; i++) {
        if (this.model[i].linkedUserId === item.userId) {
            this.model[i].lastActivity = item.lastUploadDate;
            break;
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...