我正在通过Firebug的调试器检查一些代码。我找到的值包含在this.executions
中。所以当我打印temp
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"}
我想提取变量TEST1
和TEST2
键的值value1
和value2
。知道如何获得它们吗?
答案 0 :(得分: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
...
所以现在你可以用你的数据做你想做的事了
答案 1 :(得分:0)
filter
以'TEST'开头的对象值(ES6):
var obj = arr[0];
var out = Object.keys(obj).filter(el => obj[el].substring(0, 4) === 'TEST');
或许是一个更通用的功能(这次是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']
答案 2 :(得分: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);
}