前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >for of和for in的区别

for of和for in的区别

作者头像
OECOM
发布于 2020-07-01 09:24:35
发布于 2020-07-01 09:24:35
1.3K00
代码可运行
举报
文章被收录于专栏:OECOMOECOM
运行总次数:0
代码可运行

2017-10-16 03:54:43

这两种方式都是用来进行遍历操作的,但是他们之间还是有一些区别的。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var array1 = [1,2,3];
array1.name = "xiaoyu";
for (var i in array1){
  console.log(i);      //依次输出1  2  3  name
}
console.log(array1.length); //输出3   这是原数组的长度


var array2 = [1,2,3];
array2.name = "xiaoyu";
for (var item of array2){
  console.log(item);     //输出1   2   3    没有输出name  
}
alert(array2.length); //输出3

使用for in 可以遍历数组,但是会存在以下问题:

1.index索引为字符串型数字,不能直接进行几何运算

2.遍历顺序有可能不是按照实际数组的内部顺序

3.使用for in会遍历数组所有的可枚举属性,包括原型。例如上例的name属性

所以for in更适合遍历对象,不要使用for in遍历数组。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var myObject={
  a:1,
  b:2,
  c:3
}
for (var key in myObject) {
  console.log(key+":"+myObject[key]);//输出a:1 b:2 c:3
}

两个遍历方式的最终区别就在于:for in遍历的是数组的索引(即键名),而for of遍历的是数组元素值。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-10-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
for……in for……of 区别
ES5的话也可以使用forEach,ES5具有遍历数组功能的还有map、filter、some、every、reduce、reduceRight等,只不过他们的返回结果不一样。但是使用foreach遍历数组的话,使用break不能中断循环,使用return也不能返回到外层函数。
用户2323866
2021/06/24
4260
【收藏】JavaScript数组方法速查手册极简版
JavaScript数组方法速查手册极简版中共收了32个数组的常用方法和属性,并根据方法的用途进行重新排序和分类,在文中简要的介绍了方法作用和用例说明。收藏备用吧!
毛瑞
2019/04/30
5070
【收藏】JavaScript数组方法速查手册极简版
中高级前端高频面试题分享
代码比较简单,我们只是在setTimeout的方法里面又调用了一次setTimeout,就可以达到间歇调用的目的。
前端迷
2019/05/28
8640
别再用双层遍历循环来做新旧数组对比,寻找新增元素了!使用array.includes和Set来提升代码可读性
前几天看项目,发现有个新旧数组对比,寻找新增元素的需求竟然是用for写的双循环。大概就像下面这样:
watermelo37
2025/01/22
350
别再用双层遍历循环来做新旧数组对比,寻找新增元素了!使用array.includes和Set来提升代码可读性
前端算法题总结
对于对象来说,==比较的是两个对象是否为同一个对象。数组属于对象类型,尽管数组元素是相同的,但这两个数组属于不同的对象,所以==比较为false。
花落花相惜
2021/12/16
1.5K0
数组
[]数组的字面量 var arr=new Array(); arr[0]='zs'; arr[1]='ls'; console.log(arr); var arr2=['a','b']; console.log(arr2); console.log(arr2.length); 正序遍历数组 var arr2=['a','b','c','d']; for(var i=0;i<arr2.length;i++){ con
河湾欢儿
2018/09/06
3450
22·灵魂前端工程师养成-JavaScript数组
-多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。 -擅长Web集群架构与自动化运维,曾负责国内某大型金融公司运维工作。 -devops项目经理兼DBA。 -开发过一套自动化运维平台(功能如下): 1)整合了各个公有云API,自主创建云主机。 2)ELK自动化收集日志功能。 3)Saltstack自动化运维统一配置管理工具。 4)Git、Jenkins自动化代码上线及自动化测试平台。 5)堡垒机,连接Linux、Windows平台及日志审计。 6)SQL执行及审批流程。 7)慢查询日志分析web界面。
DriverZeng
2022/09/26
5390
22·灵魂前端工程师养成-JavaScript数组
ES5的数组方法reduce()详解及应用
比较以上三种方式,直观上代码行数没有变少,性能和效率上还没有去实践,未知。 那为什么还要使用reduce()呢?
celineWong7
2020/11/05
9180
JS数组&两值交换不使用第三变量
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
奋飛
2019/08/15
2.1K0
java中数组遍历的三种方式
通常遍历数组都是使用for循环来实现。遍历一维数组很简单,遍历二维数组需要使用双层for循环,通过数组的length属性可获得数组的长度。
全栈程序员站长
2022/09/05
1.4K0
C# 静态与动态数组
C#中的数组是由System.Array类衍生出来的引用对象,因此可以使用Array类中的各种方法对数组进行各种操作。
王瑞MVP
2022/12/28
1.7K0
ES6中Array数组你应该知道的操作
上一次我们讲解了JavaScript的Array,了解了很多关于Array的属性,方法等。相信大家收益颇多,今天为大家带来更深次的了解,希望您可以学习更多。如果您还没有了解上一课程,请点击:你对JavaScript的Array对象了解有多少? 下方的代码都通过ES6语法,所以您需要先熟悉它。下面我们直奔主题。
Javanx
2019/09/04
5810
22个超详细的 JS 数组方法
https://juejin.cn/post/6907109642917117965
前端达人
2021/01/27
3.4K0
Java开发知识之Java数组
  首先,不管是Java 还是 C++ 还是其它语言.都有数组. (有可能叫法不同) 数组简而言之就是存储一段连续相同数据类型的数据结构
IBinary
2019/05/25
1.5K3
还搞不清JS里for..in for...of forEach map各种遍历方式的区别吗
for循环是JS里最简单也是最通用的遍历方式,我们需要知道遍历的次数。 for循环里return,break等关键字都是可以用的
henu_Newxc03
2022/04/13
1.5K0
【背诵⑦】保姆级 | 零基础备赛蓝桥杯Java组|一维数组二维数组
一维数组和二维数组都是 Java 中常见的数据结构,用于存储一组数据。下面是关于一维数组和二维数组的知识点和示例:
命运之光
2024/04/15
710
C#中数组的复制
因为今天在写Java程序的时候数组复制出现了问题,所以也就查了查C#中数组的复制。
卡尔曼和玻尔兹曼谁曼
2019/01/25
2K0
C#中数组的复制
JS遍历循环方法性能对比:for/while/for in/for of/map/foreach/every
这周codeReview例会,又遇到map与foreach到底谁问题。单独图方便,我会选择用map一个函数搞定一切。但是从语义的角度来讲,如果只是单纯遍历,还是推荐选择foreach。其实formap 与foreach,性能相差不大(个人测试数据在10000000,最后有测试案例)。如果用foreach 去实现map的效果,性能上就会比map差(因为需要操作另外一个数组).
周陆军
2021/08/24
3.8K0
JS几种数组遍历方式总结
JS数组遍历,基本就是for,forin,foreach,forof,map等等一些方法,以下介绍几种本文分析用到的数组遍历方式以及进行性能分析对比
全栈程序员站长
2022/09/14
1.7K0
12 个你可能还未使用的 JS 技巧
当我使用 JavaScript 开始我的 Web 开发生涯时。我喜欢寻找技巧和技巧来缩短我的代码编写时间和精力。我主要在 Quora 和 StackOverflow 等热门网站上搜索 JavaScript 技巧或者答案来解决自己遇到的问题。
前端达人
2021/07/16
7600
相关推荐
for……in for……of 区别
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文