总结数组的遍历方法,单单就漏了for of,这次被面,才被啪啪啪打脸,平时看文章看到过二者的区别,但是还是记得不牢靠。
for of可以遍历对象吗?for in遍历数组的时候要注意什么?直接脑袋嗡嗡。
首先我们得出结论,for of 不可以遍历对象,我们更推荐他遍历数组,然后for in更推荐遍历对象。
for of
遍历数组,输出的是数组的每一项
遍历对象,直接报错,说obj不可以迭代
如果我们把定义好的数组,用set处理一下,变成带有iterator接口的形式,那么他也可以遍历在这种类型的对象,我们可以看到obj1的格式。
那么我们可以看到,for of虽然不可以遍历对象,但是却可以遍历带有有iterator接口的,像上面的Set, Map
for in
遍历数组,直接输出的是数组的下标值,如果我们需要对数组的元素做处理,那我们就不适合用for in去处理数组。所以我们用for in遍历数组的时候,要注意,输出的是下标值,而不是每一项数组的值.
遍历对象,输出的是对象的key值,所以我们就乐意通过.xx来得到我们想要的数值。
for of 和for in都遍历数组对象,我们看看怎么输出的,for of直接输出的使每一项,for in输出的是下标,还是当做数组处理的。
所以我们通过上面的代码可以看到,for of更适合遍历数组,for in更适合遍历对象。