我从网上加载JSON并且它有动态嵌套数组,我想循环遍历数据并返回每个父项中的一些项目。
示例数组:
{"records": [
{
"status": "in Progress",
"form_values": {
"1111": "Sam johnes",
"2222": {
"choice_values": [
"John smith"
],
},
}
}
{
"status": "in Progress",
"form_values": {
"1111": "john smith",
}
}
{
"status": "completed",
"form_values": {
"1111": "john smith",
"2222": {
"choice_values": [
"bill smith"
],
},
}
}
]
}
我目前正在使用for循环,但它返回一个类型错误,因为它无法读取" choice_values"的属性。循环看起来像:
for (i = 0; i < data.records.length; i++) {
var status = [data.records[i].status];
var name = [data.records[i].form_values["2222"].choice_values["0"]];
var Result = [status, name];
}
Idealy结果将等于:
{0} [in progress, john smith]
{1} [in progress, undefined]
{2} [Completed, bill smith]
答案 0 :(得分:0)
您的语法不正确。
Look at form_values["222"].choice_values["0"];
应该是
for (i = 0; i < data.records.length; i++) {
var status = [data.records[i].status];
var Name = [data.records[i].form_values.["2222"].choice_values["0"]];
var Result = [status, Name];
}
您的代码:
malloc()
答案 1 :(得分:0)
var 2222
- javascript中的变量不能以数字var 2222 = [data.records[i].form_values.["2222"].choice_values["0"];
- 错过了结束]
...或者,[
之前的data
不正确var status = [data.records[i].status]
- 您确定要status
成为包含单个元素的数组吗?.form_values.["2222"].choice_values
应为.form_values["2222"].choice_values
- 在.
form_values
var Result = [status, 2222];
- 结果只会是for循环的最后一次迭代的值,
数组records
form_values.2222
属性,因此您的代码需要在盲目假设存在之前对其进行测试 Result
将为[ ["completed"], ["bill smith"] ]
- 请注意嵌套数组 - 是您的期望吗? (我看到它不是
修复以上所有内容:
var data = {
"records": [{
"status": "in Progress",
"form_values": {
"1111": "Sam johnes",
"2222": {
"choice_values": [
"John smith"
],
},
}
},{
"status": "in Progress",
"form_values": {
"1111": "john smith",
}
},{
"status": "completed",
"form_values": {
"1111": "john smith",
"2222": {
"choice_values": [
"bill smith"
],
},
}
}]
};
var Result = data.records.map(function(record) {
var a2222;
if (record.form_values["2222"]) {
a2222 = record.form_values["2222"].choice_values[0];
}
return [record.status, a2222];
});
console.log(Result);
&#13;