今天在写程序时使用了for in
遍历数组,发现输出的index
并不是Number
类型的,而是string
类型的,真的是意料之外,这一般情况下不会出现什么问题,但是对于喜欢用 ===
的开发人员来说,可能会踩到坑(1==='1'
这个是false)。
下面是一个稍微复杂的例子
const arr = ['a','b','c']
const indexMap = {}
for (let index in arr){
indexMap[arr[index]] = index
}
console.log(indexMap)
// { a: '0', b: '1', c: '2' }
看完此文章后明白了一点------深入了解 JavaScript 中的 for 循环
总结
for in
是遍历对象用的js
中的array
和其他语言的数组实现方式不一样,是一个对象- 少用
for in
遍历数组,性能没有普通的for
循环性能好(如果是角标不连续的数组(稀疏数组)使用for in
好点)