从JavaScript中获取对象的值

时间:2016-04-21 08:25:06

标签: javascript javascript-objects

我正在通过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"}

我想提取变量TEST1TEST2键的值value1value2。知道如何获得它们吗?

3 个答案:

答案 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');

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

答案 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);
}