前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >不要使用for…in来遍历数组

不要使用for…in来遍历数组

原创
作者头像
IT工作者
发布2022-01-25 11:15:33
3070
发布2022-01-25 11:15:33
举报
文章被收录于专栏:程序技术知识

原因

我们来看以下正确的代码:

代码语言:javascript
复制

var a = []; // 创建一个空数组
a[5] = 5;  

for (var i = 0; i < a.length; i++) {
    console.log(a[i]);
}

/* 将会输出以下结果:
   undefined
   undefined
   undefined
   undefined
   undefined
   5
*/

当我们使用for…in就会忽略一些信息,例如以下代码,产生与上面的代码完全不一样的结果:

代码语言:javascript
复制
var a = [];
a[5] = 5;
for (var x in a) {
    // 只显示了5,而忽略掉了0-4
    console.log(x);
}

/* 将会输出以下结果:
   5
*/

当我们需要依赖一些Javascript库,for…in也会有一些问题,例如一下代码:

代码语言:javascript
复制
Array.prototype.foo = 1;

var a = [1, 2, 3, 4, 5];
for (var x in a){
    console.log(x);
}

/* 将会输出以下结果:
   0
   1
   2
   3
   4
   foo
*/

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 原因
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档