【问题标题】:Boolean product and semplify布尔乘积和简化
【发布时间】:2022-01-19 10:29:08
【问题描述】:

我有一个问题要问你。

例如我有这个布尔表达式:

(((A AND B) OR C) AND D) AND ((K AND Z) OR (J AND H)) AND Y

这只是一个例子,但我可以有很多这样的表达式,我必须在 JavaScript 中编写一个算法,以使这个表达式简单并且可以通过 json 表示。

基本思想是像这样使用布尔产品:

(A AND B) OR C = (A OR C) AND (B OR C)

但是我怎样才能为此编写自动的东西呢?

谢谢。

【问题讨论】:

  • (A AND B) OR C = (A OR C) AND (B OR C) 这两个中的哪一个可以用 JSON 表示?如何?您的第一个示例表达式的哪一部分可以用 JSON 表示?
  • 感谢您的回复。我必须用 JSON 来表达这两种表达方式。用户应该使用前端应用程序创建配置,我必须全部转换。
  • 那我不明白这个问题。 如何表示它们?为什么第一个不能表示?
  • “我必须用 JavaScript 编写一个算法,以使这个表达式简单并可以通过 json 表示” 这可以像 {"expression": "(((A and B) ..."} 一样简单,或者你实际上可以有解析器为您生成 AST。有一些解析器生成器采用一种语言的语法并为您生成解析器。如果您甚至不知道如何在 JSON 中表示此信息,那么您首先必须考虑这一点。我们无法告诉您如何表示它,因为我们不知道数据将如何被使用。您必须查看您的要求并相应地设计格式。
  • 我要像塞巴斯蒂安的图书馆一样表达!现在我正在努力谢谢大家的回复,我会让你知道结果!

标签: javascript if-statement boolean xor


【解决方案1】:

您可以在 GitHub 上查看现有的库,例如 riichard/boolean-parser-js

【讨论】:

  • 谢谢兄弟,我想这就是答案,我试着让你知道!
猜你喜欢
  • 2011-08-16
  • 1970-01-01
  • 1970-01-01
  • 2011-08-17
  • 2013-02-07
  • 1970-01-01
  • 1970-01-01
  • 2016-07-13
相关资源
最近更新 更多