【问题标题】:Why does this JS for-in loop log just the key of a property, and not the entire property?为什么这个 JS for-in 循环只记录一个属性的键,而不是整个属性?
【发布时间】:2015-02-06 22:31:20
【问题描述】:

MDN 说:

for..in 语句以任意顺序迭代对象的可枚举属性。对于每个不同的属性,可以执行语句。

如果我输入这段 JavaScript 代码:

var myObject = {0:'cat', 1:'dog', 2:'fish'};

for (var x in myObject) {
    console.log(x);
}

我得到这个输出:

0
1
2

如果它“遍历可枚举的属性”,为什么它不记录整个属性,像这样?

0: 'cat'
1: 'dog'
2: 'fish'

我意识到我也可以通过myArray['x'] 让它记录值,但我想知道为什么它只记录键值。

这只是 for-in 循环的内置逻辑的一部分,并且与它们的预期用途有关吗?

【问题讨论】:

    标签: javascript arrays for-in-loop


    【解决方案1】:

    这是 javascript for in 循环的预期行为。如果你想要财产的价值,那么你应该这样做:

    var myObject = {0:'cat', 1:'dog', 2:'fish'};
    
    for (var x in myObject) {
        console.log(myObject[x]);
    }
    

    在您的示例对象中,您具有三个属性。这些属性的名称是 0、1 和 2。这些属性的值是“cat”、“dog”和“fish”。 For in 循环枚举属性的名称而不是值。

    【讨论】:

      猜你喜欢
      • 2015-05-11
      • 1970-01-01
      • 2019-06-12
      • 2017-03-04
      • 1970-01-01
      • 2014-09-14
      • 1970-01-01
      • 2021-06-23
      • 1970-01-01
      相关资源
      最近更新 更多