Как я могу преобразовать этот троичный синтаксис в оператор if / else в JavaScript? - PullRequest
0 голосов
/ 08 октября 2018

Я пытаюсь преобразовать 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 голосов
/ 08 октября 2018

Предполагая, что 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;
}
...