簡體   English   中英

遍歷以數組為值的Javascript對象

[英]loop through Javascript object that has an array as a value

我的物件看起來像這樣

{
  "about.php": [
    "#topNav",
    "#botNav",
    "#employees"
  ],
    "index.php": [
    "#blah"
  ]
}

我像這樣遍歷它

        var validation_messages = obj;

            for (var key in validation_messages) {
               if (validation_messages.hasOwnProperty(key)) {
                   var obj = validation_messages[key];
                    for (var prop in obj) {
                      if(obj.hasOwnProperty(prop)){
                        console.log(prop + " = " + obj[prop]);
                      }
                   }
                }
            }

我得到這個結果

0 = #topNav
1 = #botNav
2 = #employees
0 = #blah

我需要對象鍵的名稱,而不是對象值中數組的鍵。 像這樣:

about.php = #topNav
about.php = #botNav
about.php = #employees
index.php = #blah

如果它們不存在,我將把新值推入數組:

{
  "about.php": [
    "#topNav",
    "#botNav",
    "#employees"
  ],
    "index.php": [
    "#blah",
    "#newValue"
  ]
}

您錯誤地遍歷了第二個結構。 它是一個數組,而不是對象。

for (var key in validation_messages) {
    if (validation_messages.hasOwnProperty(key)) {
        var obj = validation_messages[key];

        // use a for loop here instead of for...in
        for (var i = 0, l = obj.length; i < l; i++) {
            console.log(key + " = " + obj[i]);
        }
    }
}

DEMO

暫無
暫無

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

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