如何遍历下面的数组并获取“ car1”的值?下面的代码返回未定义

<script>
var myObj = {
  "cars": {
    "car1":"Ford",
    "car2":"BMW",
    "car3":"Fiat"
  },
  "cars2": {
    "car1":"Ford2",
    "car2":"BMW2",
    "car3":"Fiat2"
  }
}

for (x in myObj) {
 alert(x.car1);
}

</script>

最佳答案

在您的循环中:

for (x in myObj) {
 alert(x.car1);
}


x是对象的键的字符串值。为了获得嵌套对象的car1属性,可以将循环更改为:

for (x in myObj) {
 alert(myObj[x].car1);
}


for-in循环中使用hasOwnProperty也是一种好习惯,它也可能会遍历对象原型链中的属性。

for (x in myObj) {
 if (myObj.hasOwnProperty(x)) {
   alert(myObj[x].car1);
 }
}

10-04 16:07