2016-09-23 82 views
-2

我有對象去當按鍵知道

var routes = { 
    "home":{ 
    hash: "/home", 
    children: { 
     "just-home": { 
      hash: "/home/just-home", 
      children: {...} 
     }, 
     "sub-homea": { 
      hash: "/home/sub-homea", 
      children: {...} 
    } 
    }, 
"contact":{ 
    hash: "/contact", 
    children: { 
     "just-contact": { 
      hash: "/contact/just-contact", 
      children: {...} 
     }, 
     "sub-contact": { 
      hash: "/contact/sub-contact", 
      children: {...} 
    } 
    } 
} 

如何設置對象just-contact.children當我知道 - 例如,首先關鍵是接觸,而旁邊剛剛contat ..?我需要動態地分配這個對象,因爲已知的鍵將會有所不同。所以我需要使用任何循環。像這樣 -

const pathArray = [contact,just-contact] 
Object.keys(routes).map(function (item) { 
       if (routes[item] === pathArray[counter]){ 
        ob = routes[item]; 
        counter++; 
       } 
      }) 

但這隻會循環一次,它不會深入。

UPDATE更多清潔解釋 -
我將從路徑位置讀取(本地主機:3000 /接觸/剛剛接觸)的值(接觸,只是接觸),我將保存到陣列(pathArray=[contact,just-contact]) ,當位置路徑將改變時,數組中的鍵也會改變。我需要找到最後一個鍵的孩子,在這個例子中的just-contact兒童關鍵

+2

這個問題不清楚。你說密鑰是已知的*(「我知道第一個密鑰是聯繫...」)*,但是你也說密鑰是未知的*(「已知的密鑰將全部不同」*)。這是什麼? [mcve]會有所幫助。 –

+1

請嘗試更好地解釋問題,這是很難糾正你的答案。 – Wallkan

+0

什麼是困難?我只需要在對象內部找到對象,當我知道鍵時(路徑) –

回答

0

找到簡單的解決方案 -

pathArray.map(function (item) { 
     if (obj[item].hash === item){ 
      obj = obj[item].children; 
     } 
})