从任何格式到所需格式的漂亮打印



我想知道是否有一种方法可以将格式转换为我想要的格式,比如说树。举以下例子:

a -> b, d
f - > c 
f-> v
I want to have this as an output:
a implies (b and d)
f implies (c or v)

这实际上是您正在寻找的算法,但请注意,该算法不支持深层条件。

function mathLogic(inputs) {
var rows = inputs.split("n");
for (var i in rows)
rows[i] = rows[i].replace(/s/g, "");
console.log("Rows: ", rows)
var logics = {};
for (var i in rows) {
var row = rows[i];
var rowSplit = row.split("->");
var from = rowSplit[0];
var to = rowSplit[1];
var ands = to.split(",");
if (!logics[from])
logics[from] = [];
logic = logics[from];
logic.push(ands);
}
for (var i in logics) {
var implyString = i + " implies ";
var orLogic = logics[i];
var ors = [];
for (var j in orLogic) {
var or = orLogic[j]
if (or.length > 1)
ors.push("(" + or.join(" and ") + ")");
else
ors.push(or.join(" and "));
}
if (ors.length > 1)
implyString += "(" + ors.join(" or ") + ")";
else
implyString += ors.join(" or ");
console.log(implyString);
}
}
mathLogic(`a -> b, d
f - > c 
f-> v`);

最新更新