簡體   English   中英

javascript對象按數組引用

[英]javascript object reference by array

如何在循環中使用數組動態引用對象元素,如下所示:

var obj = {};
var lvl = ['x','y','z'];
var ol = [];
for (var l in lvl){
    ol.push( lvl[l] )
    obj[ol] = 'someval'
}

因此引用可能是obj [x] [y] [z],因此每次循環迭代時,都會附加一個附加的鍵引用,但是我不知道會有多少級。

不知道我是否解釋得很好?!

根據您對我的評論的回答方式,我相信這段代碼將提供您要查找的嵌套對象結構。

var obj = {};
var lvl = ['x','y','z'];
var ol = {};

for (var i = 0; i < lvl.length; i++){
  obj[i] = {};  
  ol = obj[key];
}

你的意思是你想someval是價值obj.xyz 您始終可以使用變量來引用新創建的級別:

var obj = {};
var levels = ['x','y','z'];

var pointer = obj;

for (var l=0; l<levels.length; l++) {
    key = levels[l];

    if (l < levels.length-1) {   // if not last element
        pointer[key] = {};
        pointer = pointer[key];
    }
    else {                       // if last element
        pointer[key] = 'someval';
    }
}

console.log(obj); // should log {x:{y:{z:"someval"}}}

暫無
暫無

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

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