[英]How to iterate through multidimensional javascript array of objects
我想查詢一些有關在javascript中循環的信息。 我有一個看起來像的對象:
[
{
"pageId": "1",
"menuPos": "Parent",
"mainPageId": "1",
"subMenu": [
{
"pageId": "1",
"menuPos": "Parent and child",
"mainPageId": "1",
"subMenu": [
{
"pageId": "67",
"menuPos": "Child",
"mainPageId": "67"
},
{
"pageId": "68",
"menuPos": "Child and paren",
"mainPageId": "68",
"subMenu": [
{
"pageId": "70",
"menuPos": "Child",
"mainPageId": "70"
},
{
"pageId": "69",
"menuPos": "Child",
"mainPageId": "69"
}
]
}
]
}
]
}
]
我試圖使用“數組中的鍵”,但是使用此鍵,我只能達到數組的第一級。 問題是我不知道該數組中將包含多少個級別。
我想將一些信息從此數組添加到新的數組對象,然后將其發送到服務器。
它必須看起來像這樣。
[
{
"pageId": "1",
"menuPos": "Parent",
"subMenu": [
{
"pageId": "1",
"menuPos": "Parent and child",
"parentId":1,
"subMenu": [
{
"pageId": "67",
"menuPos": "Child",
"parentId": 1,
},
{
"pageId": "68",
"menuPos": "Parent and child",
"parentId": 1,
"subMenu": [
{
"pageId": "70",
"menuPos": "Child",
"parentId": 68,
},
{
"pageId": "69",
"menuPos": "Child",
"parentId": 68,
}
]
}
]
}
]
}
]
您可以使用遞歸函數,並且僅key in
對象語法中使用key in
,數組是標准循環:
function iterateMenus(menu) {
for (var i = 0; i < menu.length; i++) {
console.log(menu[i].pageId); //log more if ya want
if (menu[i].hasOwnProperty("subMenu") && typeof menu[i].subMenu === "object") {
iterateMenus(menu[i].subMenu);
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.