我从这组条件开始:
if (old.tg.all && old.hg.all) {
// reject
}
if (new.tg.all && new.hg.all) {
// reject
}
if (old.hg.all && new.tg.all) {
// reject
}
if (old.tg.all && new.hg.all) {
// reject
}
if (old.tg == new.tg) {
if ( (old.hg == new.hg) || (old.hg.all) || (new.hg.all) ) {
// reject
}
}
if (old.hg == new.hg) {
if ( (old.tg == new.tg) || (old.tg.all) || (new.tg.all) ) {
// reject
}
}
我设法将其减少到:
if (old.tg.all || new.tg.all) && (old.hg.all || new.hg.all) {
// reject
}
if (old.tg == new.tg) {
if ( (old.hg == new.hg) || (old.hg.all) || (new.hg.all) ) {
// reject
}
}
if (old.hg == new.hg) {
if ( (old.tg == new.tg) || (old.tg.all) || (new.tg.all) ) {
// reject
}
}
是否可以进一步减少逻辑运算和/或布尔条件重复的数量?