for-in和for-of的区别_for in 键是字符串-程序员宅基地

技术标签: 前端  es6  javascript  

简介

for…in ,是在ES5中提出的,用于遍历对象中所有的键值;for…of则是ES6中提出,是可以遍历所有数据结构的统一方法。

for…in

for-in 语句是一种精准迭代的语句,可以用于枚举对象中的属性。

主要的缺点:

  • 在对数组进行遍历时,数组的键名是数字,但在for-in语句中是以字符串作为键值的,如‘0’、‘1’、‘2’.
  • for-in会遍历对象中的所有键值,如在数组中手动添加的其他键值。
  • 对于for-in 中遍历的顺序是不一定的。

总之对于for-in 语句来说,最好是用来遍历对象,而不是数组。

for…of

一个数据结构只要部署了Symbol.iterator 属性,就被视为具有iterator接口,就可以通过for-of遍历它的成员。原生具有Iterator接口的数据类型如下

  • Array
  • Map
  • Set
  • String
  • TypeArray
  • 函数中的argument对象
  • NodeList对象

数组

数组原生就具备iterator接口,可以直接使用for-of语句。

var arr = ['a','b','c'];
for(let a of arr){
   
    
    console.log(a);  // a b c
}

for(let a in arr){
   
    
    console.log(a)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/y_hh_/article/details/106975175

智能推荐

斯坦福2021年度AI报告:从研发、技术、经济等多维度解读AI发展-程序员宅基地

文章浏览阅读846次。本文经机器之心(微信公众号:almosthuman2014)授权转载,禁止二次转载编辑:蛋酱、魔王、陈萍2021 年度的斯坦福 AI Index 报告正式发布,从七大版块出发,探讨了过去一..._ai图像分类国际研究进展

拼接点云_点云拼接 位姿矩阵 欧拉矩阵-程序员宅基地

文章浏览阅读894次。#include <iostream>#include <fstream>using namespace std;#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>#include <Eigen/Geometry> #include &l..._点云拼接 位姿矩阵 欧拉矩阵

mapbox底图切换-程序员宅基地

文章浏览阅读1k次,点赞29次,收藏26次。本案例使用Mapbox GL JavaScript库进行底图切换。_mapbox底图切换

CISCO路由器AAA介绍及相关路由配置-程序员宅基地

文章浏览阅读1.5k次。CISCO AAA3A概念:认证authentication 授权authorization 记帐 accountingcisco为路由器和交换机提供多种3A服务的方法:1 自包含AAA 路由器/NAS自身包含AAA服务 NAS(网络访问服务器)2 CISCO SECURE ACS 路由器/NAS上的AAA服务与外部CISCO SECUR..._cisco aaa accouting

js 获取当前日期,再加10天工作日-程序员宅基地

文章浏览阅读1k次。可以使用 JavaScript 的内置函数 Date() 来获取当前日期,然后再使用 setDate() 方法来设置日期,加上 10 天,最后使用 getDate() 方法来获取最终的日期。具体的代码如下:let today = new Date();today.setDate(today.getDate() + 10);console.log(today.getDate());..._js 日期加10天

Java设计模式圣经连载(01)-简单工厂模式_java设计模式 有一个农场,生产各种水果,有苹果,草莓,葡萄,农场的园丁要根据客户的-程序员宅基地

文章浏览阅读1.3k次。1.1 简单工厂(Simple Factory)模式简单工厂模式是类的创建,又叫静态工厂方法(Static Factory Methord)模式。简单工厂模式是由一个工厂对象决定创造哪一种产品类的实例。 1.1.1 工厂模式的几种形态工厂模式专门负责将大量有共同接口的类实例化。工厂模式可以动态的决定将哪一个类实例化,工厂模式有以下几种形态: 简单工_java设计模式 有一个农场,生产各种水果,有苹果,草莓,葡萄,农场的园丁要根据客户的

随便推点

myeclipse的优化与字体颜色格式的配置_myexlipse编辑器=文本颜色配置-程序员宅基地

文章浏览阅读796次。我平常用的ide就这两个,公司电脑是myeclipse,自己电脑装的是eclipse。我就把自己使用的一套配置记录一下,两个ide都可以用一、关于优化第一步: 取消自动validation validation有一堆,什么xml、jsp、jsf、js等等,我们没有必要全部都去自动校验一下,只是需要的时候才会手工校验一下! 取消方法: windows–>perferences–&g..._myexlipse编辑器=文本颜色配置

Jmeter系列(56)- 详解 Weighted Switch Controller 权重控制器-程序员宅基地

文章浏览阅读938次。如果你想从头学习Jmeter,可以看看这个系列的文章哦https://www.cnblogs.com/poloyy/category/1746599.html简单介绍它能分配其子项目(Child Item)的权重,从而控制子项的执行概率它是一个插件,需要额外下载哦插件下载地址https://jmeter-plugins.org/权重控制器权重控制..._权重控制器

关于AD DRC 不能检测出没有连接 的错误_ad19.16地线没连上,确检查不出错误-程序员宅基地

文章浏览阅读2.8k次。快捷键T+D 进入设计规则检查 然后发现 un-routed net 没有勾选上,所以没法检查没有连接的线路这个错误,勾选以后就可以了。_ad19.16地线没连上,确检查不出错误

数据治理的 “独孤九剑”-程序员宅基地

文章浏览阅读543次。数据治理即对数据资产管理行使权力、控制和共享决策(规划、监测和执行)的系列活动。这个概念挺抽象,它既不是你每天干的数据采集、处理、建模、运维等生产工作,也不是数据质量管理、元数据管理,主数据管理等保障型工作,事实上,数据从业者95%的工作都跟数据治理本身没关系,但每时每刻都会受到数据治理活动的影响。刚接触数据治理的时候,我对要干什么也挺茫然的,经过2年的实践,我终于知道DAMA的数据治理到底在讲点..._数据治理的 “独孤九剑”

基于PIE-Engine的新疆地区棉花种植面积提取_pie-engine机器学习种植面积反演-程序员宅基地

文章浏览阅读3.6k次,点赞6次,收藏50次。前言农业是国民经济的基础,是人类社会的衣食之源、生存之本。遥感技术由于具有探测范围广、信息获取快、宏观性强等特点,已广泛应用于农作物分类识别和作物面积估算的研究中。传统的利用遥感手段进行农作物分类识别的方法,大多基于中低分辨率遥感影像(如Landsat、MODIS等)开展,但大量的混合像元会限制识别精度的提高。随着高分辨率的遥感影像不断免费开放,快速精准地获取作物信息为政府部门合理制定粮食政策、精准发放农作物补贴、适时调配农业机械等多方面具有重要意义。新疆作为中国最大的棉花种植基地,其棉花产量能够左右._pie-engine机器学习种植面积反演

【ViewUI】基础学习记录_view ui 使用-程序员宅基地

文章浏览阅读522次。新建一个项目,由于xcode版本更新,新构建的代码目录发生改变,多出了一个屏幕生命周期类(应该是这个意思吧,我猜的)SceneDelegate.m在AppDelegate.m中对兼容版本做了配置,如果是ios13和之前的版本要在AppDelegate.m中实现,AppDelegate.m加入以下代码。注意,如果在Appdelegate.m中使用UIwindow,但不在Appdelegate.h中声明UIwindow属性,会出现一个报错 :"-[AppDelegate setWindow:]: unrec_view ui 使用