2016-04-21 76 views
0

我正在通過Firebug的調試器檢查一些代碼。我發現的價值包裹在this.executions中。所以,當我打印的temp從JavaScript中獲取對象的值

var temp = this.executions; 
console.log(temp); 

我得到的輸出值作爲

[Object { context="1461223497558", value1="TEST1", value2="TEST2"}] 

我試圖用一個for ... in循環

for(var key in temp) { 
    var value = temp[key]; 
} 

雖然然後我仍然得到輸出像

Object { context="1461223497558", value1="TEST1", value2="TEST2"} 

我想提取變量value1value2密鑰的值TEST1TEST2。任何想法如何讓他們?

+2

因爲你有對象的數組,你需要使用2個循環來獲取每個鍵和值。如果你確定這個數組只有1個項目,那麼'var temp = this.executions [0];' –

+0

謝謝你,我試過@mimiz解決方案,它的工作.. –

回答

3

遍歷鍵:

var keys = Object.keys(temp[0]); // As your first temp var is an array 
keys.forEach(function(key){ 
console.log(key +" : " +temp[key]); 
}); 

還是第一次迭代上執行:

this.executions.forEach(function(temp){ // loop over executions 
    var keys = Object.keys(temp); 
    keys.forEach(function(key){ // loop over keys 
    console.log(key +" : " +temp[key]); 
    }); 
}); 

這將outpout

context : 1461223497558 
value1 : TEST1 
... 

所以,你想要什麼,現在你可以用你的數據

+0

嘿謝謝你的解決方案...它工作,對不起我沒有足夠的聲譽,否則我可以upvoted這個答案.... –

0

filter與 'TEST'(ES6)啓動對象的值:

var obj = arr[0]; 
var out = Object.keys(obj).filter(el => obj[el].substring(0, 4) === 'TEST'); 

DEMO

或許更普遍的功能(這時候ES5):

function extractValues(obj, str) { 
    return Object.keys(obj).filter(function(el) { 
    return obj[el].substring(0, str.length) === str; 
    }); 
} 

extractValues(obj, 'TEST'); // ['TEST1', 'TEST2'] 

DEMO

+0

非常感謝@Andy –

0

請注意,您的第一個輸出

[Object { context="1461223497558", value1="TEST1", value2="TEST2"}] 

是由對象周圍方括號表示的對象數組。

因此首先需要遍歷數組(例如,通過使用for ... in循環),然後訪問當前對象的屬性:

for(var key in temp) { 
    var object = temp[key]; 
    console.log(object.value1, object.value2); 
} 
+0

非常感謝@塞巴斯蒂安 –