簡體   English   中英

根據數組值構造對象的方括號符號

[英]Construct object's square bracket notation from array values

假設我有一個未知數的數組。 例如: ['one', 'two', 'three']

如何從對象構造方括號符號? 基本上,我需要創建一個: var result = myObject['one']['two']['three']

他們在這里的關鍵是要了解數組中可以有任意數量的值,而我只需要使用這些值對對象進行n級深入研究即可。

您可以使用循環:

var o = myObject;

for (var i = 0; i < yourArray.length; i++) {
    o = o[yourArray[i]];
}

或使用Array.reduce ,看起來更好,但在較舊的瀏覽器中將無法使用:

var o = {
    'one': {
        'two': {
            'three': 'four'
        }
    }
};

['one', 'two', 'three'].reduce(function(object, key) {
    return object[key];
}, o);

借助Array.reduce()簡短而精確:

var o = { 'one': { 'two': { 'three': 'five' } } };
["one","two","three"].reduce(function(prev,cur){return prev[cur]},o);

減少從IE9開始的工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM