バックグラウンド
すべて同じタイプのオブジェクトの配列があります。
すべて同じ型の配列のルックアップを処理するためのクラスを作成しました。クラスのポイントは、オブジェクトのプロパティに基づいてオブジェクトを探すたびに、必要以上に配列を反復処理しないようにすることです。
私のルックアップ クラスの骨組みは次のようになります。それで、あなたはそれが何をするかを理解することができます。
/**
* @constructor
* @param {Array} items An array of all the same type of item.
*/
titan.structs.IndexedLookup = function (items) {};
/**
* Get by property
* @param {String} property The property name.
* @param {String|Number} value The property value.
* @returns {Object|null}
*/
titan.structs.IndexedLookup.prototype.getByProperty =
function (property, value) {};
問題
これの最後の行を使いたい
var lookup = new titan.structs.IndexedLookup(myArrayOfItems);
// Lookup by property 'id'
var item = lookup.getByProperty("id", 27);
高度なコンパイラが「id」の代わりに割り当てた実際のプロパティ名を取得する賢い方法は思いつきません。
備考
オブジェクトタイプの引用符でプロパティを使用するソリューションを探しているわけではありません。オブジェクトクラスを設計するときに、未知のコンポーネントでルックアッププロパティとして使用されるという事前の知識が必要だからです。