专栏首页OECOMfor of和for in的区别

for of和for in的区别

2017-10-16 03:54:43

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

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遍历数组。

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遍历的是数组元素值。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • html5前端图片压缩

    如今手机像素越来越高,造成拍出来的照片越来越大,随便拍一张就好几兆,于是乎就有了一种需求就是压缩图片,在之前压缩图片的功能是在后台操作的,之后前端亦可以进行图片...

    无邪Z
  • nodejs开发微信支付之统一下单

    首先我们需要来看一下后台具体都需要做哪些功能: - 统一下单 - 接收订单结果通知 - 查询订单 - 申请退款 - 查询退款 - 退款结果通知接收

    无邪Z
  • 负margin在页面布局中的应用

    在页面中经常会遇到两列的情况,比如说左侧栏固定宽度,右侧栏自适应宽度,此时可以用flex布局的方式,但是这种方式在ie8上不兼容,但是也可以用table。这里我...

    无邪Z
  • 带你玩转ECMAScript 6,助力你写出高效漂亮的代码

    ES6 提供的许多新特性。用这些新特性,我们能在不降低代码可读性与维护性的基础上畅快地写 JavaScript~

    前端老鸟
  • 用es6快乐的写js代码

    ES6 提供的许多新特性。用这些新特性,我们能在不降低代码可读性与维护性的基础上畅快地写 JavaScript~

    前端老鸟
  • wtfPython—Python中一些奇妙的代码

    wtfPython是github上的一个项目,作者收集了一些奇妙的Python代码片段,这些代码的输出结果会和我们想象中的不太一样; 通过探寻产生这种结果的内部...

    小小科
  • Okhttp如何开启的Http2.0

    但是我一直有些疑惑,Http2.0为什么后端支持了前端就能直接访问2.0版本了,Okhttp如何开启的Http2.0呢?

    逮虾户
  • UNIX网络编程卷1(第三版)套接字编程简介

      通常也被成为“网际套接字地址结构”,以sockaddr_in命名,定义在<netinet/in.h>头文件中。 

    心跳包
  • 实操指南|关于Python中的列表理解

    列表理解通常在Python中用于编写单行语句,这些语句通过循环访问可迭代对象来创建新列表或字典。本文将首先介绍有关for循环在Python中的工作原理,然后说明...

    用户6543014
  • [学习es6]setter/getter探究

    其实本质还是基于javascript原型链机制开发的语法糖,其中,本人对setter/getter进行一番研究,发现了不少坑。

    :::::::

扫码关注云+社区

领取腾讯云代金券