javascript 多维数组转 JSON

标签 javascript arrays json

请检查我的 fiddle 并告诉我我做错了什么? 我不想要选项0。为什么它会来。

var qus ={ 
    {

    "qus" :"what is your name?",
    "option0" : {"ans" : "w", "cor":"h"},
    "option1" : {"ans" : "Alex", "cor":"false"},
    "option2" : {"ans" : "Hervy", "cor":"false"},
    "option3" : {"ans" : "Rico", "cor":"true"},
    "option4" : {"ans" : "Tom", "cor":"false"},
    },

}

这是我的 jsfiddle 链接 http://jsfiddle.net/rushdi1987/jvhgxawm/4/

最佳答案

jsFiddle Demo

Option0在那里,因为它是数组的一部分。数组的 0 索引是 "what is your name?" ,在第一部分中,以及 "what is your brother's name?"在第二个。

使用 for in 将迭代每个索引,并采用 0 索引最终将该字符串作为您可能的答案之一。当您假设答案的 [0] 是名称,[1] 作为标志时,结果为 [0][1]关于“你叫什么名字?”是 wh 。此时数组的索引为 0,因此最终得到 "option0" : {"ans" : w, "cor:"h"},这是你不想要的。

修复很简单,只需使用条件 if 和 continue 跳过 for in 循环中的索引即可

if(n == 0)continue;

我稍微重构了您的代码,使其更易于阅读

var objects = [
    [
        "what is your name?", 
        ["Alex", false],
        ["Hervy", false],
        ["Rico", true],
        ["Tom", false]
    ],
    [
        "what is your brother's name?", 
        ["Alex", false],
        ["Hervy", true],
        ["Rico", false],
        ["Tom", false]
    ]
];

var el = document.getElementById("out");

el.innerHTML += 'var qus ={ <br>';

for (i in objects){
    var qset = objects[i];

    el.innerHTML += '{ <br>';
    el.innerHTML += '"qus" :"' + qset[0] + '",<br>';

    for (n in qset){
        if(n == 0)continue;
        var nameset = qset[n];

        el.innerHTML += '"option' + n;
        el.innerHTML += '" : {"ans" : ' + nameset[0];
        el.innerHTML += ', "cor:"' + nameset[1] + '"},<br>';
    }

    el.innerHTML += '},<br><br>';
}
el.innerHTML += '}';

关于javascript 多维数组转 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32662553/

相关文章:

javascript - 如何在knownEvents处理函数中获取数据上下文

javascript - 如何从 Electron 的主进程访问全局 BrowserWindow JavaScript?

javascript - PHP REST 服务器 - AJAX - JSON

json - Twilio webhook 短信响应格式

javascript - 如何在 Jquery 中迭代具有多个对象的 json 字符串

javascript - 在普通表单提交上加载 GIF

javascript - 如何确定图像是 JavaScript 中的 URI 还是缩略图

javascript - 如何使用lodash过滤数据

java - 尝试纠正简单的数组程序

javascript - AngularJS 基于 JSON 记录过滤数据