我有一个JavaScript对象,其中包含一些键和值:
var obj = {
"key1" : "val1",
"key2" : "val2",
"key3" : "val3",
"key4" : ""
}
我希望能够遍历所有的键并获取它们对应的值。
我尝试了两种方法:
1)使用for(var key in keys)
var keys = Object.keys(obj);
for (var key in keys) {
// ...
}
这种解决方案的问题在于keys对象是一个数组,所以我必须使用obj[keys[key]]]。 不太美观。
此外,检查"key4"时,返回值为"0"而不是""(空值)。
2)使用forEach。
Object.keys(obj).forEach(function(key){
// ...
});
在这种情况下的问题是,如果我尝试执行以下操作:
Object.keys(obj).forEach(function(key){
obj[key]; // <- obj is undefined !!
});
在foreach中,“obj”变量未定义!
迭代所有键以检索所有值的最佳方法是什么?
谢谢