无法使用typescript/javascript迭代JSON



我得到了一个具有不同字段名(27_sourcename0、27_sourcename 1…(的JSON文档。为了检查字段名称是否存在,我创建了一个字段名称数组(this.sourcenames27(

所以我想检查字段名称是否存在,以获得值"0";image.jpg";。

this.document = { 
_source: {
ID: "55",
27_sourcename0: "image.jpg"
27_sourcename1: "image.jpg"
}
}

this.sourcenames27 = [
{
sourceName: '27_sourcename0',
},
{
sourceName: '27_sourcename1',
},
{
sourceName: '27_sourcename2',
},
]
//this doesnt work
for (let item of this.sourcenames27) {
console.log(this.document['_source'] + item.sourceName);
if (this.document['_source'] + item.sourceName) {
console.log('jeah it exists');
}
}
// this works well
console.log(this.document['_source']['27_sourcename1']

当我使用时,我得到了价值

this.document['_source']['27_sourcename1']

但是,当我迭代this.sourcenames27数组时,我无法获得值。我在这里忽略了什么?

预期输出:image.jpg,image.jpg

尝试像this.document['_source'][item.sourceName]那样访问,而不是使用+运算符,您尝试像{}+字符串类型那样访问。

this.document = { 
_source: {
ID: "55",
27_sourcename0: "image.jpg"
27_sourcename1: "image.jpg"
}
}

this.sourcenames27 = [
{
sourceName: '27_sourcename0',
},
{
sourceName: '27_sourcename1',
},
{
sourceName: '27_sourcename2',
},
]


for (let item of this.sourcenames27) {
console.log(this.document['_source'][item.sourceName]); //Note here
if (this.document['_source'][item.sourceName]) { // Note here
console.log('jeah it exists');
}
}

// this works well
console.log(this.document['_source']['27_sourcename1']

最新更新