Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.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 格式化对象_Javascript_Jquery - Fatal编程技术网

Javascript 格式化对象

Javascript 格式化对象,javascript,jquery,Javascript,Jquery,我正在尝试重新构造嵌套对象: 输入 期望输出 到目前为止我已经试过了 function createJsonStructure(obj) { for (var i = 0; i < obj.elements.length; ++i) { console.log(obj.name); if(obj.elements[i].elements) { for (var ii = 0; ii &l

我正在尝试重新构造嵌套对象:

输入

期望输出

到目前为止我已经试过了

    function createJsonStructure(obj) {
        for (var i = 0; i < obj.elements.length; ++i) {
            console.log(obj.name);
            if(obj.elements[i].elements) {
                for (var ii = 0; ii < obj.elements[i].elements.length; ++ii) {
                    createJsonStructure(obj.elements[i].elements[ii]); 
                }
            } else {
                console.log(obj.elements[i].text);
            } 
        }
    };

   $(function(){
        createJsonStructure(xmlToJson.elements[0]);
    });

您可以使用此使用ES2018的箭头功能:

const arrange=obj=>obj.elements?{ …obj&&{text:{name:obj.name}中的名称, 子项:obj.elements.maparrange }:{……obj}; //样本: const data={elements:[{name:catalog,elements:[{name:book,elements:[{name:author,elements:[{type:text,text:Gambardella,Matthew}]},{name:title,elements:[{text:XML开发者指南}]}]};
console.logarrangedata@trincot出错并更改了。一方面在输出中包含text:Gambardella、Matthew,另一方面包含text:{name:XML Developers Guide}的逻辑是什么?太好了。正是我想要的。
 {
       "children":[
          {
             "text": {"name":"catalog"},
             "children":[
                {
                   "text": {"name":"book"},
                   "children":[
                      {
                         "text": {"name":"author"},
                         "children":[
                            {
                               "type":"text",
                               "text":"Gambardella, Matthew"
                            }
                         ]
                      },
                      {
                         "text": {"name":"title"},
                         "children":[
                            {
                               "text": {"name": "XML Developers Guide"}
                            }
                         ]
                      }
                   ]
                }
             ]
          }
       ]
    }
    function createJsonStructure(obj) {
        for (var i = 0; i < obj.elements.length; ++i) {
            console.log(obj.name);
            if(obj.elements[i].elements) {
                for (var ii = 0; ii < obj.elements[i].elements.length; ++ii) {
                    createJsonStructure(obj.elements[i].elements[ii]); 
                }
            } else {
                console.log(obj.elements[i].text);
            } 
        }
    };

   $(function(){
        createJsonStructure(xmlToJson.elements[0]);
    });