我不确定如何表达这个问题,但我希望它是可以理解的
在Angular 6中,我有一个GET请求,该请求返回一个像这样的JSON对象
"fieldA": [
{
"displayValue": "value1",
"id": "A"
},
{
"displayValue": "value2",
"id": "B"
}
],
"fieldB": [
{
"displayValue": "value1",
"id": "0"
},
{
"displayValue": "value2",
"id": "1"
},
],
"FieldC": [
{
"displayValue": "value1",
"id": "47"
},
{
"displayValue": "valuen",
"id": "94"
},
]
}"fieldA": [
{
"displayValue": "value1",
"id": "A"
},
{
"displayValue": "value2",
"id": "B"
}
],
"fieldB": [
{
"displayValue": "value1",
"id": "0"
},
{
"displayValue": "value2",
"id": "1"
},
],
"FieldC": [
{
"displayValue": "value1",
"id": "47"
},
{
"displayValue": "valuen",
"id": "94"
},
]
}
如果我使用这段代码进行迭代
for(let item in this.response) {
console.log(item);
this.schFields.push(item);
}
我正确地获得了每个字段名称。可能会有数量可变的字段名,每个字段名的值都可变
现在我需要列出schFields数组中存储的每个字段的值
我看不到如何将从数组中读取的值用作变量
如果我知道字段名称,那么它可以正常工作,例如
for(let item of this.response.fieldA) {
let itemelem = { "entity_id" : item.id, "entity_name" : item.displayValue };
this.items.push(itemelem);
}
但是当fieldA部分需要为变量时,我无法找到解决方案。
答案 0 :(得分:0)
不确定我是否正确理解了这个问题,但是您可以使用字符串访问对象属性。
const data = {fieldA: "data1", fieldb: "data2"};
console.log(data["fieldA"]); //will print data1
所以你可以这样做
const keys = Object.keys(this.schFields); // to get ["FieldA", "FieldB", ...]
keys.map(fieldKey => {
console.log(this.response[fieldKey]);
});
答案 1 :(得分:0)
无论您在上一个for循环中尝试做什么,我都认为下面的代码会做到这一点。
for (let key in this.response) {
for(let item of this.response[key]) {
let itemelem = { "entity_id" : item.id, "entity_name" : item.displayValue };
this.items.push(itemelem);
}
}