为什么我的for循环不能迭代基本对象?

时间:2017-07-23 04:23:40

标签: javascript object

user = {
  lastName: "Jones",
  phone: 12345,
  email: "mike@gmail.com",
  name: "Mike"
}

for(i = 0; i < Object.keys(user).length; i++) {
  theKey = Object.keys(user)[i]
  console.log(user.theKey)
}

目前的输出是:

undefined
undefined
undefined
undefined 

预期是:

Jones
12345
mike@gmail.com
Mike

我知道还有其他方法可以做到,但我想知道我这样做的问题是什么?

Object.keys(user)[i]

返回

lastName
phone
email
name

所以我不明白为什么它会以点符号返回undefined。我该怎么做才能以这种方式返回此对象的值?

3 个答案:

答案 0 :(得分:1)

没有像&#39; theKey&#39;在&#39;用户&#39;对象

尝试这个

console.log(user[theKey])

Dynamically access object property using variable

答案 1 :(得分:0)

我相信你可以做Object.values而不是Object.keys,我也认为你不需要theKey变量,我想你可以只做console.log(Object.values [i])

答案 2 :(得分:0)

您可以使用Object.entries获取密钥和值。你也可以反对。但是你必须改变它。见下文。

user = {
  lastName: "Jones",
  phone: 12345,
  email: "mike@gmail.com",
  name: "Mike"
}

Object.keys(user).map((e) => console.log(`key=${e}  value=${obj[e]}`));

Object.entries(user).forEach(([key, value]) => console.log(`key=${key} value=${value}`));