2017-01-12 170 views
0

我有一個JSON是這樣的:訪問對象鍵在JavaScript

user = 
    { 
     "info": { 
       "id": "....", 
        ...... 
     }, 
     ...... 
    } 

所以..我可以使用user.info.id獲得ID,但我需要一個能夠給我一個對象的屬性功能使用類似getInfo(user, "info.id")我已經試過我的運氣user["info.id"]。 JavaScript是否已經有類似的東西?或者,我如何實現這一點?

順便說一句,我使用Node.js的:)

+1

可以使用'[]'語法訪問屬性。所以只是實現一個函數,將您的輸入轉換爲有效的JS –

+0

那麼..我怎麼能去呢?我可以只有一個「。」或者甚至沒有 – user5622060

回答

0

您可以使用reduce()創建這樣的功能。 `用戶[ 「信息」] [ 「ID」]`:

var user = { 
 
    "info": { 
 
    "id": 3, 
 
    }, 
 
} 
 

 
function getInfo(data, key) { 
 
    return key.split('.').reduce(function(r, e) { 
 
    return r[e] 
 
    }, data) 
 
} 
 

 
console.log(getInfo(user, "info.id"))

隨着ES6箭頭功能

function getInfo(data, key) { 
    return key.split('.').reduce((r, e) => r[e] , data) 
}