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