背景
我有一个类型相同的对象数组。
我创建了一个类来处理所有相同类型的数组的查找。该类的重点是防止每次根据其属性查找对象时对数组的迭代次数超过您需要的次数。
我的查找类的骨架看起来像这样。所以你可以理解它的作用。
/**
* @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”。
评论
我不是在寻找在对象类型的引号中使用属性的解决方案,因为在设计对象类时需要先验知识,以便稍后在某些未知组件中将其用作查找属性。