Angular - наблюдаемая проверка, если значение существует - PullRequest
0 голосов
/ 04 сентября 2018

У меня есть список пользователей в моей базе данных.

user1: {name: "John", pet: {name:"Riko", type: "dog"}, married: true, children: [{name: "Marry", relationship: "daughter"}] },
user2: {name: John", married: false}

После извлечения пользовательского узла я хочу проверить, есть ли у этого пользователя определенная информация. В моем случае я хочу проверить, есть ли у пользователя поля pet, married и children.

Если он это сделает, я хочу сохранить объект пользователя с новым атрибутом внутри: completedQuiz: true (так как он добавил недостающую информацию через тест).

После реализации логики сверху результат, который я должен получить:

user1: {name: "John", pet: {name:"Riko", type: "dog"}, married: true, children: [{name: "Marry", relationship: "daughter"}], completedQuiz: true },
user2: {name: John", married: false, completedQuiz: false}

user2 имеет completedQuiz: false, поскольку он не имеет всех узлов pet, married и children, в то время как user1 имеет completedQuiz: true, поскольку у него есть эти поля.

P.S. Я также хочу подписаться на этот список, поэтому, если данные будут добавлены после выборки, у меня все равно будет самый актуальный статус completedQuiz для всех пользователей.

Что было бы хорошим способом реализовать это?

1 Ответ

0 голосов
/ 04 сентября 2018

Предположим, у вас есть наблюдаемая, которая возвращает пользователей из базы данных. Затем вы можете преобразовать их, используя карту:

users.map( (user) => {
    ...user,
    completedQuiz: user.pet && user.married && user.children
});
...