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]);
});