我在获取资料时遇到问题。所以我想过滤掉任何具有"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 评论