簡體   English   中英

當值的值可以是對象時,如何遍歷JavaScript對象?

[英]How to iterate over JavaScript object when value of a value can be object?

編輯的問題 感謝@WiktorZychla喚醒了我周一關於遞歸的知識。 下面的代碼現在可以正常工作了。

如果我在這里有一個像這樣的假人的對象:

const dummy = {
    a: 1,
    b: 2,
    c: {
        d: 3,
        e: {
            f: 4
        }
    },
    g: 5
};

我可以用以下方法迭代它:

const xavier = (value, s) => {
  for (const key in value) {
    if (value.hasOwnProperty(key)) {
      if (typeof value[key] === 'object' && value[key] !== null) {
        xavier(value[key], s + '.' + key);
      } else {
        console.log(s + '.' + key + ' ' + value[key]);
      }
    }
  }
};

現在將打印以下內容:

.a 1
.b 2
.c.d 3
.c.e.f 4
.g 5

經過艱苦的工作,我制作了一個可以在任何對象上循環的函數:這​​將最終迭代您想要的級別,請看看它

 arr = []; obj = { a: 1, b: 2, c: { d: 3, e: { f: 4 } } } function iter(x){ for(i in x){ if(typeof(x[i])=="object"){ iter(x[i]); }else{ arr.push(x[i]); }}} iter(obj); document.write(arr.join(',')); 
 <!DOCTYPE html> <html> <body></body> </html> 

暫無
暫無

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

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