[英]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.