变量obj={name:“西蒙”,年龄:“20”,服装:{style:“简单”,嬉皮士:假}}for(obj中的var propt){console.log(propt+':'+obj[propt]);}

变量propt如何表示对象的财产?它不是内置方法或属性。为什么它会产生对象中的每个属性?


当前回答

这是为了。。。in语句(MDN、ECMAScript规范)。

您可以将其读为“对于obj对象中的每个属性,依次将每个属性分配给PROPT变量”。

其他回答

jquery允许您立即执行以下操作:

$.each( obj, function( key, value ) {
  alert( key + ": " + value );
});

您可以使用for…访问对象的嵌套财产。。。in和forEach循环。

对于在:

for (const key in info) {
    console.log(info[key]);
}

对于每个:

Object.keys(info).forEach(function(prop) {
    console.log(info[prop]);
    // cities: Array[3], continent: "North America", images: Array[3], name: "Canada"
    // "prop" is the property name
    // "data[prop]" is the property value
});

用于。。。in循环表示对象中的每个属性,因为它就像for循环。您在for中定义了propt。。。在循环中执行以下操作:

    for(var propt in obj){
alert(propt + ': ' + obj[propt]);
}

A代表。。。在循环中迭代对象的可枚举财产。无论您定义哪个变量,或将其放入for。。。在循环中,每次转到它迭代的下一个属性时都会发生更改。for中的变量。。。in循环遍历键,但它的值是键的值。例如:

    for(var propt in obj) {
      console.log(propt);//logs name
      console.log(obj[propt]);//logs "Simon"
    }

您可以看到变量与变量值的区别。相比之下,a for。。。of循环则相反。

我希望这有帮助。

女孩和男孩们,我们在2019年,我们没有那么多时间打字。。。所以,让我们来做这个酷炫的新花式ECMAScript 2016:

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

for循环遍历对象的所有财产。propt在for循环的第一行中定义。它是一个字符串,是obj对象的属性的名称。在循环的第一次迭代中,propt将是“name”。