javascript
  • jquery
  • 2013-08-02 121 views 2 likes 
    2

    我的對象到對象是如下通過參考變量

    var masterData = {  
        "region":[ 
          {"key":"1","value":"AMS"}, 
          {"key":"2","value":"APJ"}, 
          {"key":"3","value":"EMEA"} 
        ] 
    }; 
    
    var key = 'region'; 
    var strList = 'masterData.'+key; 
    
    $.each($(strList), function(i, row) { 
        alert(row.key); 
    }); 
    

    它不進入循環,但如果我用實際對象替換變量,它的工作原理。例如:

    $.each($(masterData.region), function(i, row) { 
        alert(row.key);  
    }); 
    

    我想通過一個變量來做同樣的事情,就像第一個一樣。我在這裏錯過了什麼?

    +0

    這是不** ** JSON。這是一個對象文字。不幸的是,許多人犯的錯誤是將對象文字與JSON混淆。請參閱[沒有任何「JSON對象」](http://benalman.com/news/2010/03/theres-no-such-thing-as-a-json/)。 –

    回答

    -1

    這個工作

    $.each($(eval(strList)), function(i, row) { 
        alert(row.key);  
        }); 
    
    +2

    我不認爲他們應該使用'eval'來實現這一點,它真的沒有必要。 –

    4

    因爲一個對象被認爲是一個關聯數組,性能可以通過鍵以這種方式獲得:

    var key = 'region'; 
    var strList = masterData[key]; 
    

    Good Overview of Objects as Associative Arrays

    相關問題