【发布时间】: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