如何在JavaScript中将此三元语法转换为if / else语句?

时间:2018-10-08 12:40:53

标签: javascript recursion ternary-operator

我正在尝试将XML转换为JSON并遇到以下功能。但是我需要即时修改一些内容。因此,我想将此函数转换为if / else语句或循环。

你能帮我吗?

function xmlToJson(xmlNode) {
    return {
        text: xmlNode.firstChild && xmlNode.firstChild.nodeType === 3 ? 
              xmlNode.firstChild.textContent : '',
        children: [...xmlNode.children].map(childNode => xmlToJson(childNode))
    };
}

1 个答案:

答案 0 :(得分:0)

假设xmlNode.children是一个数组,则可以执行以下操作:

function xmlToJson(xmlNode)
{
    let obj = {};
    if (xmlNode.firstChild && xmlNode.firstChild.nodeType === 3)
    {
        obj.text = xmlNode.firstChild.textContent;
    }
    else
    {
        obj.children = [];
        for (let i = 0; i < xmlNode.children.length; ++i)
        {
           obj.children.push(xmlToJson(xmlNode.children[i]));
        }
    }
    return obj;
}