我的数据库中有一个用户列表。
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
因为他确实有这些字段。
PS 我也想订阅该列表,因此,如果在获取数据后添加了数据,我仍将为所有用户提供最新的completedQuiz
状态。>
什么是实现此目标的好方法?
答案 0 :(得分:3)
假设您有一个可观察对象,可从数据库中返回用户。然后,您可以使用地图对其进行转换:
users.map( (user) => {
...user,
completedQuiz: user.pet && user.married && user.children
});