0

我正在学习 JavaScript,所以今天我发现要打印或获取对象属性,使用了 for..in 循环。但我在这里感到困惑,因为我以前没有见过 for..in 循环。所以我遇到了一个查询,为什么我们不能在 JavaScript 中使用 for 循环来打印对象属性?这个 for..in 循环是如何工作的?这是一个例子。

let object1 = {
name : 'someone',
name2 : 'someone2',
phno : 234568969
};

并打印这个每个人都建议

for(let key in object1)
{
console.log(key + "=" + object1[key]);
}

我的问题是这个循环是如何工作的,以及为什么这个循环用于打印属性。

4

2 回答 2

1

与 相反for... offor... in循环将遍历对象的可枚举属性(而不是它们的值)。

在上面的示例中,您正在迭代对象的(“属性标签”),然后使用它们来访问.object1

下面的示例将更清楚地演示for... in循环是如何工作的。

const arr = [23, 45, 67, 56];

for(let index in arr) {
  // Note that only the indexes of the array are 
  // assigned to 'index', not the values
  console.log('Index:', index);
  
  // To access the values, you should do:
  console.log('Value:', arr[index])
}

对象也是如此:

const obj = {
  prop1: 'val 1',
  prop2: 2,
  prop3: { nestedObjProp: 'Nested Object Value' }
}

for(let key in obj) {
  console.log('Key:', key, '  Value:', obj[key]);
}

有关循环的更多信息,请参阅MDN Web 文档中的for...。for... in

于 2020-07-15T16:40:40.163 回答
1

为什么我们不能在 JavaScript 中使用 for loop(Normal) 来打印对象属性?
答。因为对象是键值对,而不是数组。

这个 for..in 循环是如何工作的?
答。循环遍历对象的属性。(可用于获取像 object[property] 这样的值)。

注意:属性表示键。

如果你想遍历一个数组,你可以使用简单的 for 循环,如下所示。

var x = [1, 2, 3];

var i;
for (i = 0; i < x.length; i++) {
  console.log(x[i]);
}
于 2020-07-15T17:08:11.803 回答