【问题标题】:Angular - Observable check if value existsAngular - 可观察的检查值是否存在
【发布时间】:2018-09-04 19:14:23
【问题描述】:

我的数据库中有一个用户列表。

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

获取用户节点后,我希望检查该用户是否有某些信息。就我而言,我想检查用户是否拥有petmarriedchildren 字段。

如果他这样做了,我想在里面存储一个新属性的用户对象: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,因为他没有所有petmarriedchildren 节点,而user1 拥有completedQuiz: true,因为他确实拥有这些字段。

P.S.我还想订阅该列表,因此如果在获取数据后添加数据,我仍将拥有所有用户的最新completedQuiz 状态。

什么是实现这个的好方法?

【问题讨论】:

  • 那么你尝试了什么?请发布您的尝试minimal reproducible example,并具体说明您遇到的问题。
  • 分享一些你尝试过的工作。检查您的条件后,使用地图运算符转换对象。
  • 既然你还没有提供任何方法来实现这一点 - 你如何使用 sql 来获取数据,编写一个用于更新记录的后端逻辑,一个带有管道/映射的中间件和一个前端显示数据表;)

标签: javascript angular typescript rxjs observable


【解决方案1】:

假设你有一个从数据库返回用户的 observable。然后,您可以使用地图对其进行转换:

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

【讨论】:

  • user.children ?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-21
  • 2022-01-16
  • 2014-11-24
  • 2019-05-18
相关资源
最近更新 更多