Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 对象长度不匹配_Javascript_Json - Fatal编程技术网

Javascript 对象长度不匹配

Javascript 对象长度不匹配,javascript,json,Javascript,Json,我以两种不同的方式输出对象的长度,它会导致两种不同的响应: console.log(appData.HomeGateway.questions.length); console.log(appData.HomeGateway.questions); 产出: 3 0: Object 1: Object 2: Object 3: Object 4: Object 5: Object 6: Object 7: Object 8: Object length: 9 知道我为什么会得到两个不同的长度吗

我以两种不同的方式输出对象的长度,它会导致两种不同的响应:

console.log(appData.HomeGateway.questions.length);
console.log(appData.HomeGateway.questions);
产出:

3
0: Object
1: Object
2: Object
3: Object
4: Object
5: Object
6: Object
7: Object
8: Object
length: 9
知道我为什么会得到两个不同的长度吗?appData.questions似乎出于任何原因从其他对象继承对象

以下是JSON:

var appData = {
    "HomeGateway": {
        "company": "",
        "title": {
            "english": "",
            "spanish": "",
            "russian": "",
            "otherlanguage": ""
        },
        "language": "english",
        "pressOKQuestion": {
            "left": {
                "english": "Press ",
                "spansih": "",
                "russian": ""
            },
            "right": {
                "english": " to move to the next question",
                "spanish": "\" to move to the next question",
                "russian": ""
            }
        },
        "pressOKMessage": {
            "left": {
                "english": "Press ",
                "spansih": "",
                "russian": ""
            },
            "right": {
                "english": " to move on",
                "spanish": "\" to move to the next question",
                "russian": ""
            }
        },
        "pressUpDown": {
            "left": {
                "english": "Please press ",
                "spanish": "",
                "russian": ""
            },
            "middle": {
                "english": " or ",
                "spanish": "",
                "russian": ""
            },
            "right": {
                "english": " on your remote control to select",
                "spanish": "",
                "russian": ""
            }
        },
        "questions": [{
            "url": "/question/1",
            "question": {
                "english": "Have you talked to your doctor today?",
                "spanish": "",
                "russian": ""
            },
            "view": "views/question.html",
            "controller": "loadData",
            "nextPage": "#/question/2",
            "answers": [{
                "id": 1,
                "answer": {
                    "english": "Yes",
                    "spanish": "Si",
                    "russian": ""
                }
            }, {
                "answer": {
                    "english": "No",
                    "spanish": "No",
                    "russian": ""
                },
                "message": "/message/3"
            }]
        }, {
            "url": "/question/2",
            "question": {
                "english": "On a scale of 0-10, how bad is your pain today?",
                "spanish": "",
                "russian": ""
            },
            "icon": "img/icons/1446585749_Doctor_Consultation.png",
            "iconSrc": "Broken Arm",
            "view": "views/question.html",
            "controller": "loadData",
            "nextPage": "#/question/3",
            "answers": [{
                "answer": {
                    "english": "Low",
                    "spanish": "",
                    "russian": ""
                },
                "category": "1-2"
            }, {
                "answer": {
                    "english": "Medium",
                    "spanish": "",
                    "russian": ""
                },
                "category": "3-4"
            }, {
                "answer": {
                    "english": "High",
                    "spanish": "",
                    "russian": ""
                },
                "category": "5-8",
                "message": "/message/4"
            }, {
                "answer": {
                    "english": "Very High",
                    "spanish": "",
                    "russian": ""
                },
                "category": "9-10",
                "message": "/message/4"
            }]

        }, {
            "url": "/question/3",
            "question": {
                "english": "Please enter your systolic blood pressure.",
                "spanish": "",
                "russian": ""
            },
            "icon": "img/icons/1446585795_Blood_Pressure_Kit.png",
            "iconSrc": "Blood Pressure",
            "view": "views/toggle-question.html",
            "controller": "loadData",
            "nextPage": "#/finished",
            "toggle": {
                "value": 100,
                "max": 500,
                "min": 50,
                "high": {
                    "value": 150,
                    "message": "/message/5"
                },
                "low": {
                    "value": 75,
                    "message": "/message/6"
                }
            }
        }],
        "messages": [{
            "url": "/message/1",
            "message": {
                "english": "Please talk to your nurse or doctor about why you do not want to.",
                "spanish": "",
                "russian": ""
            },
            "icon": "img/alert-red.png",
            "iconSrc": "Alert",
            "view": "views/message.html",
            "controller": "loadData",
            "nextPage": "#/message/2"
        }, {
            "url": "/message/2",
            "message": {
                "english": "Good job!",
                "spanish": "",
                "russian": ""
            },
            "icon": "img/icons/1446586860_Best_Choice.png",
            "iconSrc": "Thumbs Up!",
            "view": "views/message.html",
            "controller": "loadData",
            "nextPage": "#/question/1"
        }, {
            "url": "/home",
            "title": {
                "english": "Thank you for being part of today.",
                "spanish": "",
                "russian": ""
            },
            "subtitle": {
                "english": "Remember this device does not take place of a personal emergency response system or a call to 911.",
                "spanish": "",
                "russian": ""
            },
            "view": "views/home.html",
            "controller": "loadData",
            "nextPage": "#/question/1"
        }]
    }
}

注意:只是编辑了它,以反映我用于获取不同长度的方法。

没有
appData.questions
。它必须是appData.HomeGateway.questions,这两种情况下都有三个问题(当然有)。下面是您自己的数据演示:

var-appData={
“家庭网关”:{
“公司”:“,
“标题”:{
“英文”:“,
“西班牙文”:“,
“俄文”:“,
“其他语言”:”
},
“语言”:“英语”,
“pressOKQuestion”:{
“左”:{
“英语”:“新闻”,
“spansih”:“,
“俄语”:”
},
“对”:{
“英语”:“转到下一个问题”,
“西班牙语”:“\”进入下一个问题“,
“俄语”:”
}
},
“按确认信息”:{
“左”:{
“英语”:“新闻”,
“spansih”:“,
“俄语”:”
},
“对”:{
“英语”:“继续前进”,
“西班牙语”:“\”进入下一个问题“,
“俄语”:”
}
},
“按向上向下”:{
“左”:{
“英语”:“请按”,
“西班牙文”:“,
“俄语”:”
},
“中间”:{
“英语”:“或”,
“西班牙文”:“,
“俄语”:”
},
“对”:{
“英语”:“在遥控器上选择”,
“西班牙文”:“,
“俄语”:”
}
},
“问题”:[{
“url”:“/问题/1”,
“问题”:{
“英语”:“你今天和你的医生谈过了吗?”,
“西班牙文”:“,
“俄语”:”
},
“视图”:“views/question.html”,
“控制器”:“加载数据”,
“下一页”:“#/question/2”,
“答案”:[{
“id”:1,
“答复”:{
“英语”:“是”,
“西班牙语”:“Si”,
“俄语”:”
}
}, {
“答复”:{
“英语”:“否”,
“西班牙语”:“否”,
“俄语”:”
},
“消息”:“/消息/3”
}]
}, {
“url”:“/问题/2”,
“问题”:{
“英语”:“在0-10分的范围内,你今天的疼痛有多严重?”,
“西班牙文”:“,
“俄语”:”
},
“icon”:“img/icons/1446585749_Doctor_Consultation.png”,
“ICONRC”:“断臂”,
“视图”:“views/question.html”,
“控制器”:“加载数据”,
“下一页”:“#/question/3”,
“答案”:[{
“答复”:{
“英语”:“低”,
“西班牙文”:“,
“俄语”:”
},
“类别”:“1-2”
}, {
“答复”:{
“英语”:“中等”,
“西班牙文”:“,
“俄语”:”
},
“类别”:“3-4”
}, {
“答复”:{
“英语”:“高”,
“西班牙文”:“,
“俄语”:”
},
“类别”:“5-8”,
“消息”:“/消息/4”
}, {
“答复”:{
“英语”:“非常高”,
“西班牙文”:“,
“俄语”:”
},
“类别”:“9-10”,
“消息”:“/消息/4”
}]
}, {
“url”:“/问题/3”,
“问题”:{
“英语”:“请输入您的收缩压。”,
“西班牙文”:“,
“俄语”:”
},
“图标”:“img/icons/1446585795_血压_Kit.png”,
“ICONRC”:“血压”,
“视图”:“视图/切换问题.html”,
“控制器”:“加载数据”,
“下一页”:“#/完成”,
“切换”:{
“价值”:100,
“最大”:500,
“最小”:50,
“高”:{
“价值”:150,
“消息”:“/消息/5”
},
“低”:{
“价值”:75,
“消息”:“/消息/6”
}
}
}],
“信息”:[{
“url”:“/消息/1”,
“信息”:{
“英语”:“请与您的护士或医生谈谈您不想这样做的原因。”,
“西班牙文”:“,
“俄语”:”
},
“图标”:“img/alert red.png”,
“iconSrc”:“警报”,
“视图”:“views/message.html”,
“控制器”:“加载数据”,
“下一页”:“#/message/2”
}, {
“url”:“/消息/2”,
“信息”:{
“英语”:“干得好!”,
“西班牙文”:“,
“俄语”:”
},
“icon”:“img/icons/1446586860_Best_Choice.png”,
“ICONRC”:“竖起大拇指!”,
“视图”:“views/message.html”,
“控制器”:“加载数据”,
“下一页”:“#/question/1”
}, {
“url”:“/主页”,
“标题”:{
“英语”:“谢谢你,贝恩
console.log(appData.HomeGateway.questions.length)

console.log(appData.HomeGateway)