Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.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 JSON数组索引问题_Javascript_Arrays_Json - Fatal编程技术网

Javascript JSON数组索引问题

Javascript JSON数组索引问题,javascript,arrays,json,Javascript,Arrays,Json,我似乎无法使用网页上的javascript选项访问数组中的索引3。我看不到最后一个问题“你对你的选择满意吗?” 我不知道我错过了什么或者做错了什么 页面位置: 代码: 变量数据={“冒险”:[ { “地点”:“你想要多大尺寸的比萨饼?”, “选项1”:{ “文本”:“大”, “值”:1}, “选择2”:{ “文本”:“中等”, “值”:1}, “选择3”:{ “文本”:“小”, “值”:1} }, { “地点”:“你想在比萨饼上加什么酱?”, “选项1”:{ “文本”:“Marinara”

我似乎无法使用网页上的javascript选项访问数组中的索引3。我看不到最后一个问题“你对你的选择满意吗?”

我不知道我错过了什么或者做错了什么

页面位置:

代码:


变量数据={“冒险”:[
{
“地点”:“你想要多大尺寸的比萨饼?”,
“选项1”:{
“文本”:“大”,
“值”:1},
“选择2”:{
“文本”:“中等”,
“值”:1},
“选择3”:{
“文本”:“小”,
“值”:1}
},
{
“地点”:“你想在比萨饼上加什么酱?”,
“选项1”:{
“文本”:“Marinara”,
“值”:2},
“选择2”:{
“文本”:“牧场”,
“值”:2},
“选择3”:{
“正文”:“烧烤”,
“值”:2}
},
{
“地点”:“你想在比萨饼上加什么特色配料?”,
“选项1”:{
“文本”:“所有肉类”,
“值”:3},
“选择2”:{
“文本”:“所有蔬菜”,
“值”:3},
“选择3”:{
“文本”:“夏威夷语”,
“值”:3}
},
{
“地点”:“对您的选择满意吗?”,
“选项1”:{
“文本”:“是”,
“值”:1},
“选择2”:{
“文本”:“重新开始”,
“值”:0}
}
]};
var选择=0;
函数冒险(选择){
document.getElementById(“占位符”).innerHTML=“”+数据.冒险[选择].place+”

“ + "" +data.Adventure[choice].option1.text +“
” +data.Adventure[choice].option2.text +“
” +data.Adventure[choice].option3.text; } 欢迎来到比萨饼店

从这里开始


要进行故障排除,您需要检查浏览器控制台,并分析错误

当我检查浏览器控制台时,我发现Option3不见了

                var data = {"Adventure": [
                {
                    "place": "What size do you want your pizza?",
                    "option1": {
                        "text": "Large",
                        "value": 1},
                    "option2": {
                        "text": "Medium",
                        "value": 1},
                    "option3": {
                        "text": "Small",
                        "value": 1}

                },
                {
                    "place": "What sauce do you want on your pizza?",
                    "option1": {
                        "text": "Marinara",
                        "value": 2},
                    "option2": {
                        "text": "Ranch",
                        "value": 2},
                    "option3": {
                        "text": "BBQ",
                        "value": 2}


                },
                {
                    "place": "What specialty toppings do you want on your pizza?",
                    "option1": {
                        "text": "All meat",
                        "value": 3},
                    "option2": {
                        "text": "All veggies",
                        "value": 3},
                    "option3": {
                        "text": "Hawaiian",
                        "value": 3}


                },
                {
                    "place": "Satisfied with your choice?",
                    "option1": {
                        "text": "Yes",
                        "value": 1},
                    "option2": {
                        "text": "Start over",
                        "value": 0},
                  "option3": {
                        "text": "Start over",
                        "value": 0}

                }
            ]};

请参见此处更新的代码,

选项3
在最后一种情况下不存在。因此,仅当
对象中的最后一个选项可用时,才创建一个函数并返回选项3

var数据={
“冒险”:[{
“地点”:“你想要多大尺寸的比萨饼?”,
“选项1”:{
“文本”:“大”,
“价值”:1
},
“选择2”:{
“文本”:“中等”,
“价值”:1
},
“选择3”:{
“文本”:“小”,
“价值”:1
}
},
{
“地点”:“你想在比萨饼上加什么酱?”,
“选项1”:{
“文本”:“Marinara”,
“价值”:2
},
“选择2”:{
“文本”:“牧场”,
“价值”:2
},
“选择3”:{
“正文”:“烧烤”,
“价值”:2
}
},
{
“地点”:“你想在比萨饼上加什么特色配料?”,
“选项1”:{
“文本”:“所有肉类”,
“价值”:3
},
“选择2”:{
“文本”:“所有蔬菜”,
“价值”:3
},
“选择3”:{
“文本”:“夏威夷语”,
“价值”:3
}
},
{
“地点”:“对您的选择满意吗?”,
“选项1”:{
“文本”:“是”,
“价值”:1
},
“选择2”:{
“文本”:“重新开始”,
“值”:0
}
}
]
};
var选择=0;
函数冒险(选择){
var等规三=
document.getElementById(“占位符”).innerHTML=“”+数据.冒险[选择].place+”

“+ "" + data.Adventure[choice].option1.text+ “
”+ data.Adventure[choice].option2.text+ //检查选项3是否存在的生命周期,如果存在,则创建第三个选项 (函数isOptThree(){ if(data.advention[choice].option3){ 返回“
”+ data.Adventure[choice].option3.text; }否则{ 返回“”; } }()) }

欢迎来到比萨饼店

从这里开始

讽刺的解决方案:)您可能还应该添加提示,让开发人员检查浏览器控制台日志。我确信控制台中至少有一个
TypeError