私はJavascriptが初めてで(C/C++に精通しています)、XMLファイルを解析してオブジェクトの配列に保存しようとしています。構造は、1 つのメイン リスト アイテムと場合によっては複数のリスト サブアイテムがある黒丸リストに似ています。
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();
});
});