【问题标题】:How for...of Loop Statement Works in Javascript?(ECMAScript 6)for...of 循环语句如何在 Javascript 中工作?(ECMAScript 6)
【发布时间】:2015-09-14 11:24:09
【问题描述】:

我有一个 sn-p,我正在对它进行 for...of 语句的试验:

let arr = [3, 5, 7];
arr.foo = "hello";

for (let i in arr) {
   console.log(i); // logs "0", "1", "2", "foo"
}

for (let i of arr) {
   console.log(i); // logs "3", "5", "7"
}

我的问题是for...of 应该在可迭代值上运行,对吗?那么为什么第二个for 不打印"hello"

【问题讨论】:

    标签: javascript loops ecmascript-6


    【解决方案1】:

    数组是对其元素的迭代。这就是它的定义方式。这就是Array[Symbol.iterator] 的实现方式。

    http://www.2ality.com/2015/02/es6-iteration.html

    【讨论】:

    • 所以你的意思是 foo 是一个属性,而不是一个元素。但数组索引不是属性本身吗?
    • 0 和 foo 都是属性,而 3 是元素,但 hello 不是。元素是作为整数值属性的值出现的值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-14
    • 1970-01-01
    • 2020-01-04
    • 1970-01-01
    • 2012-11-07
    相关资源
    最近更新 更多