我想动态获取对象的值。这是对象:
myObj = {
person1:{name:"John Doe", age:"46"},
person2:{name:"Peter Deer", age:"36"},
person3:{name:"Ben Boar", age:"21"}
}
我有一个从对象中获取所需名称的功能。这是功能:
showPersonName(objKey: number) {
console.log(this.myObj + 'person' +objKey.name);
}
如果我传递1,我想要的结果是objKey显示John Doe,但是Visual Studio Code显示
Property 'name' does not exist on type 'number'.
拜托,我该怎么办?我对此很难过。
答案 0 :(得分:0)
您正在定义
fetchMyObj(objKey: number) {
objKey
是一个数字以及如何搜索其name
更新1:
showPersonName(objKey: number) {
console.log(this.myObj.find(obj =>{ return obj.age:objKey}))
}
对象格式
myObj = [{name:"John Doe", age:46},
{name:"Peter Deer", age:36},
{name:"Ben Boar", age:21}];
<强> PLUNKER 强>
答案 1 :(得分:0)
哦,我的!我的问题是连接使用不当。我在这里找到了帮助:JavaScript object: access variable property by name as string 我应该在我的情况下使用方括号。
console.log(this.myObj['person' + objKey].name);
这解决了我的问题。我非常感谢你们(特别是@Aravind)忍受我的无知。