【发布时间】:2015-10-08 11:30:34
【问题描述】:
在 MDN https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/for...of,
它说While for...in 迭代属性名称,for...of 迭代属性值。
那么,为什么第二个for...of 不记录“hello”?
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"
}
【问题讨论】:
-
对数组的迭代(使用 forEach,
for..of)仅涵盖它们在零和length-1之间的属性(即使未定义)。for..in是不同的,它迭代任何东西的可枚举属性。 -
非常感谢您的及时回复。现在,我不知道如何接受你的回答:-)
-
抱歉,写的稍微详细一点,给我几分钟时间:)
标签: javascript for-loop