拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 使用.filter()的问题,与AND/OR(&&/||)混淆,有人可以帮我吗?

使用.filter()的问题,与AND/OR(&&/||)混淆,有人可以帮我吗?

白鹭 - 2022-02-02 1990 0 0

我在获取资料时遇到问题。所以我想过滤掉任何具有"Draft"的 invoice_status 的,或者"Ready to Bill""Cancelled"如果它是invoice_status is null AND status is null

一切都被正确过滤掉了,除了invoice_status is null AND status is null没有被过滤掉的任何资料我下面的代码有什么问题?

console.log(
  "data...",
  this.props.partnerOrders.filter(
    r =>
      (r.invoice_status !== "Draft" &&
      r.invoice_status !== "Ready to Bill" &&
      r.invoice_status !== "Cancelled") || 
      (r.invoice_status !== null && r.status !== null)
  )
);

uj5u.com热心网友回复:

代码中的过滤条件被写为条件即词的否定(相反),以便在true何时保留元素。您的陈述被正确否定,除了:!invoice_status is null AND status is null不是(r.invoice_status !== null && r.status !== null),是(r.invoice_status !== null || r.status !== null)

这是一般规则:!(A && B) == (!A || !B),见否定规则

uj5u.com热心网友回复:

由于您要过滤 invoice_status is null AND status is null,因此当您反转逻辑时,根据德摩根定理,您会得到invoice_status is not null OR status is not null最终改变&&一个||应该做的伎俩

标签:

0 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *