【发布时间】:2017-12-28 07:53:13
【问题描述】:
我试图在 ES6 中循环一个 JavaScript 对象。
for (let [value, index] of object) {
do something with rest
if (index >= 1) {
// do something with first item
}
}
它工作正常,虽然当我尝试使用 index 获取第一项时,它在控制台中返回错误:
Uncaught TypeError: Invalid attempt to destructure non-iterable instance
关于如何循环使用索引的对象有什么想法吗?谢谢
【问题讨论】:
-
您是否意识到属性没有特定的顺序,因此索引对于对象的属性真的没有任何意义?我怀疑这只是做任何你想做的事情的错误方法。您可以使用
Object.keys()获取属性名称数组,然后对其进行迭代,然后会有一个索引,但同样,它可能没有意义。 -
感谢您的洞察力。如果我需要获取第一项,我会尝试将对象更改为听起来更合乎逻辑的数组。
-
是的,数组更有意义,然后您的
for/of循环将按您的意愿工作。 -
你的
object是什么?请发布引发此错误的整个代码(它表明您的object是可迭代的,但元素不是)。
标签: javascript for-loop ecmascript-6