我是 Javascript 新手(熟悉 C/C++),我正在尝试解析 XML 文件并将其存储在对象数组中。该结构类似于一个项目符号列表,其中有一个主列表项和可能的多个列表子项:
var MenuLine =
[{
label : "null",
icon : "null",
Subitem:
[{
label : "null",
icon : "null"
}]
}];
这允许我使用以下语法:
var someRandomSubitemText = MenuLine[2].Subitem[4].label;
我尝试使用 .push 方法填充这个数组:
var tempMenuLine = [];
var tempSubitem = [];
$(xml).find("item").each(function()
{
tempMenuLine.label = $(xml).children("label").text();
tempMenuLine.icon = $(xml).children("icon").text();
$(this).children("subitem").each(function()
{
tempSubitem.label = $(this).children("label").text();
tempSubitem.icon = $(this).children("icon").text();
tempMenuLine.Subitem.push(tempSubitem);
});
MenuLine.push(tempMenuLine);
});
但是,这不起作用,因为 .push 方法传递了对 tempMenuLine 的引用,并且我在每次迭代时都覆盖了 tempMenuLine。有没有一种方法可以使用类似于以下语法的方式直接写入 MenuLine 数组?
$(xml).find("item").each(function(index1)
{
MenuLine[index1].label = $(xml).children("label").text();
MenuLine[index1].icon = $(xml).children("icon").text();
$(this).children("subitem").each(function(index2)
{
MenuLine[index1].Subitem[index2].label = $(this).children("label").text();
MenuLine[index1].Subitem[index2].icon = $(this).children("icon").text();
});
});