我是靠谱客的博主 懵懂紫菜,最近开发中收集的这篇文章主要介绍为什么不推荐for...in遍历数组,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

我们一般来说,使用for…in来遍历对象,使用for…of来遍历数组

总之,for…in 循环主要是为了遍历对象而生,不适用于遍历数组

for…of 循环可以用来遍历数组、类数组对象,字符串、Set、Map 以及 Generator 对象

我们强烈建议不要使用for…in来遍历数组
为什么???

因为for…in遍历的是对象的key或者是数组的下标。当然最重要的原因是,他会到原型链上寻找,遍历其中新增加的属性的key值

for of遍历的是数组元素值,
for in 遍历的是数组的索引(即键名)
for of遍历的只是数组内的元素,
for in 遍历的不只是数组内的元素,还有其新增的原型属性和索引

for of 遍历

Array.prototype.method=function(){
  console.log(this.length);
}
var myArray=[11,21,41,51,61,71]
myArray.name="数组";
for (var value of myArray) {
console.log(value);
}
//输出数组每项的值:11,21,41,51,61,71

for in 遍历

Array.prototype.method=function(){
  console.log(this.length);
}
var myArray=[11,21,41,51,61,71]
myArray.name="数组";
for (var value in myArray) {
console.log(value);
}
// 输出数据的下标以及新增属性和方法: 0,1,2,3,4,5,method,name

总结
1因为我们的for…in会遍历出拓展的方法和属性,所以当我们对Array进行扩展的时候,会打印出来,就比较的尴尬,不知所措
2我们的for…in得到的是key值,如果是数组的话,得到的是字符串类型的key值,如果这个时候进行下标操作的话,可能会出现奇奇怪怪的问题

for…in和for…of都可以使用break,continue的操作

最后

以上就是懵懂紫菜为你收集整理的为什么不推荐for...in遍历数组的全部内容,希望文章能够帮你解决为什么不推荐for...in遍历数组所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部