【发布时间】:2020-11-25 15:06:20
【问题描述】:
我有一个具有不同字段名称的 JSON 文档(27_sourcename0、27_sourcename1 ...)。 为了检查字段名是否存在,我创建了一个字段名数组(this.sourcenames27)。
所以我想检查字段名称是否存在以获取值“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 数组时,我无法获得值。 我在这里忽略了什么?
预期输出: 图片.jpg, 图片.jpg
【问题讨论】:
-
this.document['_source']解析为一个对象,其中包含三个键。对对象执行+没有意义。如果您尝试动态访问对象的属性,则必须执行[variable]访问。您正在迭代的事实不是这里的主要问题。是你误解了表单中的对象访问不起作用 -
this.document['_source'][item.sourceName]
标签: javascript json typescript