我正在尝试为我的查找过程创建一个函数,因为它看起来我需要经常使用它。我换掉了部件,使它变得多功能,除了它似乎很难找到你定义的“属性”,现在我修改了它。我相信lookupResult[array[i][property]
是问题,因为我不确定如何为函数更改它(之前是pINV[i].id
)。任何人都可以提供任何解决方案吗?
var pINV = [];
var examine = "ball"; // What the player typed (for simplicity)
function Item(id, desc) {
this.id = id;
this.desc = desc;
}
function Lookup(array, property) {
var lookupResult = {};
for (var i = 0, len = [array].length; i < len; i++) {
lookupResult[array[i][property]] = array[i];
}
return lookupResult;
}
var invLookup = Lookup(pINV, id);
var item = invLookup[examine];
console.log(item.desc);
答案 0 :(得分:1)
这个[array].length
错了。它正在[[1,2,3]]而不是[1,2,3],因此长度总是为1。放下[]