次のように、テーブル駆動型のアプローチを使用し、コードの繰り返し (DRY) を使用しないで実行できます。
var lookupInfo = {
house: {id: "accountID", prefix, "", suffix: "0200", table: "Content"},
street: {id: "accountID", prefix: "", suffix: "0000", table: "Content"},
city: {id: "categoryID", prefix: "", suffix: "", table: "Reference"},
location: {id: "examID", prefix: "0001", suffix: "", table: "Content"}
};
var primaryKey, data = lookupInfo[entity];
if (data) {
primaryKey = data.prefix + store.getItem(data.id) + data.suffix;
table = data.table;
}
コードを最小化し、コードを繰り返さないことに加えて、追加のコードを記述せずにテーブルにオプションを追加することも簡単です。
または、データテーブルをもう少しコンパクトにすることもできますが、(ハードコードされた定数のために純粋なプログラミングの観点から) それほどエレガントではありません。
var lookupInfo = {
house: ["accountID", "", "0200", "Content"],
street: ["accountID", "", "0000", "Content"],
city: ["categoryID", "", "", "Reference"],
location: ["examID", "0001", "", "Content"]
};
var primaryKey, data = lookupInfo[entity];
if (data) {
primaryKey = data[1] + store.getItem(data[0]) + data[2];
table = data[3];
}
どちらの方法でも、エンティティのルックアップ テーブルを使用してから、各エンティティのさまざまな値に対してテーブル駆動型のアプローチを使用するというアイデアが得られます。