簡體   English   中英

嘗試循環條件為什么我變得不確定

[英]Try to loop condition why i getting undefined

我對自己的代碼有疑問。 我的代碼看起來像這樣

 var data = {"Q1":"Male","Q5":"USA"}; var combine = [ {"Q1":"Male","Q5":"USA"}, {"Q1":"Male","Q5":"Japan"}]; for(key in combine[0]){ if(key.length > 1){ var num = key.length; console.log(key, data.key); } } 

我的目的是嘗試使用data.key返回data.Q1和data.Q2,但是當我console.log(key, data.key);

鍵是Q1,Q5,但是data.key是未定義的,我認為它必須是“ Male”和“ USA”

在此處輸入圖片說明

更改console.log(key, data.key); console.log(key, data[key]);

 var data = {"Q1":"Male","Q5":"USA"}; var combine = [ {"Q1":"Male","Q5":"USA"}, {"Q1":"Male","Q5":"Japan"}]; for(key in combine[0]){ if(key.length > 1){ var num = key.length; console.log(key, data[key]); } } 

由於key是動態的,因此請使用[]括號符號來訪問屬性。 這將允許您動態評估key

  var data = {"Q1":"Male","Q5":"USA"}; var combine = [ {"Q1":"Male","Q5":"USA"}, {"Q1":"Male","Q5":"Japan"}]; for(key in combine[0]){ if(key.length > 1){ var num = key.length; console.log(key, data[key]); } } 

組合[0]中的鍵表示對象的鍵名稱。

所以key.length給你鍵的長度,即Q1的長度

使用data [key]獲取整個對象

 var data = { "Q1": "Male", "Q5": "USA" }; var combine = [{ "Q1": "Male", "Q5": "USA" }, { "Q1": "Male", "Q5": "Japan" } ]; for (key in combine[0]) { if (key.length > 1) { var num = key.length; console.log(key); console.log("key's length--", key.length); console.log("key's data--", data[key]); } } 

您的data對象是map。 嘗試使用data[key]

 var data = {"Q1":"Male","Q5":"USA"}; var combine = [ {"Q1":"Male","Q5":"USA"}, {"Q1":"Male","Q5":"Japan"}]; for(key in combine[0]){ if(key.length > 1){ var num = key.length; console.log(key, data[key]); } } 

data.key嘗試訪問未定義的數據對象中的屬性key

嘗試使用[]括號。

例:

 var data = {"Q1":"Male","Q5":"USA"};

var combine = [ {"Q1":"Male","Q5":"USA"},
                {"Q1":"Male","Q5":"Japan"}];

for(key in combine[0]){
        if(key.length > 1){
        var num = key.length;
        console.log(key, data[key]);     
        }
    }

暫無
暫無

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

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