【问题标题】:How can I convert this ternary syntax to an if/else statement in JavaScript?如何将此三元语法转换为 JavaScript 中的 if/else 语句?
【发布时间】:2019-03-13 03:23:38
【问题描述】:

我正在尝试将 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))
    };
}

【问题讨论】:

  • 欢迎来到 Stack Overflow!请访问help center,使用tour 了解内容和How to Ask。做一些研究,搜索关于SO的相关主题;如果您遇到困难,请发布您的尝试minimal reproducible example,并注明输入和预期输出。
  • 你的 xml 是什么以及你想要达到的目标,比如预期的输出 (JSON)
  • 这似乎与 StackOverflow 无关。
  • 我已经问过另一个话题,提供了我拥有的所有信息。 stackoverflow.com/questions/52605008/… 因为我没有答案工作(我没有责怪任何人:D),我一直在尝试不同的脚本,包括这个,但我不明白它是如何工作的。

标签: javascript recursion ternary-operator


【解决方案1】:

假设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;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-13
    • 2019-07-03
    • 1970-01-01
    • 2019-07-04
    • 2019-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多