A blog about software and making.

Table Driven Design Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
let result;
if (isBar) {
if (isBaz) {
result = 'foo truetrue';
} else {
result = 'foo truefalse';
}
} else {
if (isBaz) {
result = 'foo falsetrue';
} else {
result = 'foo falsefalse';
}
}

Can be reduced to

1
2
3
4
5
6
7
8
const fooByIsBarIsBaz = {};
fooByIsBarIsBaz[true] = {};
fooByIsBarIsBaz[true][true] = 'foo truetrue';
fooByIsBarIsBaz[true][false] = 'foo truefalse';
fooByIsBarIsBaz[false] = {};
fooByIsBarIsBaz[false][true] = 'foo falsetrue';
fooByIsBarIsBaz[false][false] = 'foo falsefalse';
const result = fooByIsBarIsBaz[isBar][isBaz];
1
2
console.log(fooByIsBarIsBaz); // { false: { false: "foo falsefalse", true: "foo falsetrue" ...
console.log(fooByIsBarIsBaz[true][false]); // foo truefalse