javascript - 如何通过键获取 Javascript 对象的所有值?

标签 javascript arrays json object

我有一个带有一些键和值的 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 !!
});

“obj”变量在 foreach 中未定义!

遍历所有键以检索所有值的最佳方法是什么?

谢谢

最佳答案

只需使用for in

var obj = { 
  "key1" : "val1", 
  "key2" : "val2", 
  "key3" : "val3", 
  "key4" : ""
};

for (var key in obj) {

  console.log(key); // key1 and etc...
  console.log(obj[key]); // val1 and etc...
}

关于javascript - 如何通过键获取 Javascript 对象的所有值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36884483/

相关文章:

javascript - 显示指定秒数的 css 组件

javascript - 我得到 "Expected an conditional expression and instead saw an assignment"即使它有效

javascript - 无法将修改后的字符串推送到 javascript 数组

java - 蛇案中的 Spring MVC 回归

ruby-on-rails - 转换以下 CURL PUT 以测试 rails 中的 JSON 请求

javascript - 为什么通过 props 正确传递的数组返回未定义?

javascript - 使用 JavaScript/jQuery 创建自定义命名的 HTML 元素

带有对象的 Javascript 三元运算符

c - 检查是否所有字母都出现在文件中且没有重复

jquery - 自动完成选择重定向