首页 web前端 js教程 JavaScript中for-in遍历方式示例介绍_javascript技巧

JavaScript中for-in遍历方式示例介绍_javascript技巧

May 16, 2016 pm 05:00 PM
遍历

摘要:for-in遍历方式的循环计数器是字符串类型,遍历对象时为对象属性/方法名,遍历数组时为数组元素下标索引,与普通的for循环不同,for-in会将继承的属性/方法列出,这一点在使用时需要特别关注。

除了传统的for循环,JavaScript为遍历操作定义了for-in方式,根据数据源的不同,在使用时存在差异。
(1)遍历对象:

复制代码 代码如下:

var fish = {
head : 1,
tail : 1,
}
for(var prop in fish) {
console.log(fish[prop]);
}

调试时观察:prop依次为'head','tail',即遍历对象属性时是以字符串类型存在的,循环计数器为对象的属性名。
(2)遍历数组
复制代码 代码如下:

var arr = ['one', 'two', 'three'];
for(var prop in arr) {
console.log(prop);
}

调试时观察:prop依次为'0','1',即遍历数组时仍是以字符串类型存在,不同的是循环计数器为数组元素的下标。(这时可以试试用for循环输出,结果与for-in是一致的)
如果代码中加入:
复制代码 代码如下:

if(Object.prototype.clone === 'undefined')
Object.prototype.clone = function() {};

则输出结果为:0,1,clone
如果这时用for循环输出,则仍为0,1;也就是说for-in循环会将当前操作的数据源所属类型具有的属性遍历出来(同样对对象fish用for-in时,也会输出clone),所以就要求在使用for-in遍历时拉着一根弦:如果仅对对象自有属性操作,需要将继承来的属性加以剔除,比如用hasOwnProperty()方法。
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Java如何遍历文件夹并获取所有文件名 Java如何遍历文件夹并获取所有文件名 Mar 29, 2024 pm 01:24 PM

Java是一种流行的编程语言,具有强大的文件处理功能。在Java中,遍历文件夹并获取所有文件名是一种常见的操作,可以帮助我们快速定位和处理特定目录下的文件。本文将介绍如何在Java中实现遍历文件夹并获取所有文件名的方法,并提供具体的代码示例。1.使用递归方法遍历文件夹我们可以使用递归方法来遍历文件夹,递归方法是一种自身调用自身的方式,可以有效地遍历文件夹中

PHP glob()函数使用示例:遍历指定文件夹中的所有文件 PHP glob()函数使用示例:遍历指定文件夹中的所有文件 Jun 27, 2023 am 09:16 AM

PHPglob()函数使用示例:遍历指定文件夹中的所有文件在PHP开发中,经常需要遍历指定文件夹中的所有文件,以实现文件批量操作或读取。PHP的glob()函数正是用来实现这种需求的。glob()函数可以通过指定一个通配符匹配模式,来获取指定文件夹中符合条件的所有文件的路径信息。在这篇文章中,我们将会演示如何使用glob()函数来遍历指定文件夹中的所有文件

Java Iterator 和 Iterable 的深入比较:优缺点分析 Java Iterator 和 Iterable 的深入比较:优缺点分析 Feb 19, 2024 pm 04:20 PM

概念差异:Iterator:Iterator是一个接口,代表一个从集合中获取值的迭代器。它提供了MoveNext()、Current()和Reset()等方法,允许你遍历集合中的元素,并对当前元素进行操作。Iterable:Iterable也是一个接口,代表一个可迭代的对象。它提供了Iterator()方法,用于返回一个Iterator对象,以便于遍历集合中的元素。使用方式:Iterator:要使用Iterator,需要先获得一个Iterator对象,然后调用MoveNext()方法来移动到下一

Python 3.x 中如何使用os模块遍历目录中的文件 Python 3.x 中如何使用os模块遍历目录中的文件 Jul 29, 2023 pm 02:57 PM

Python3.x中如何使用os模块遍历目录中的文件在Python中,我们可以使用os模块来进行文件和目录的操作。os模块是Python标准库中的一个重要模块,提供了许多和操作系统相关的功能。在本文中,我们将介绍如何使用os模块来遍历一个目录中的所有文件。首先,我们需要导入os模块:importos接下来,我们可以使用os.walk()函数来遍历目录。

如何使用Python实现二叉树的遍历 如何使用Python实现二叉树的遍历 Jun 09, 2023 pm 09:12 PM

作为一种常用的数据结构,二叉树经常被用来存储数据、搜索和排序。遍历二叉树是非常常见的操作之一。Python作为一种简单易用的编程语言,有许多方法可以实现二叉树的遍历。本文将介绍如何使用Python实现二叉树的前序、中序和后序遍历。二叉树的基础在学习二叉树的遍历之前,我们需要了解二叉树的基本概念。二叉树由节点组成,每个节点都有一个值和两个子节点(左子节点和右子

在C++中递归插入和遍历链表 在C++中递归插入和遍历链表 Sep 10, 2023 am 09:21 AM

我们得到了用于形成链表的整数值。任务是使用递归方法先插入然后遍历单链表。在末尾递归添加节点如果head为NULL→将节点添加到head否则添加到head(head→next)递归遍历节点如果head为NULL→退出否则打印(head→next)示例输入−1-2-7-9-10输出输出strong>−链表:1→2→7→9→10→NULL输入−12-21-17-94-18输出−链表:12→21→17→94→18→NULL下面程序中使用的方法如下在这种方法中,我们将使用函数添加节点并遍历单链表并递

Java Iterator和Iterable:集合遍历的密钥,揭开其神秘面纱 Java Iterator和Iterable:集合遍历的密钥,揭开其神秘面纱 Feb 20, 2024 am 10:27 AM

Iterator简介Iterator是Java中用于遍历集合的接口。它提供了一组方法,允许您以一种顺序的方式访问集合中的元素。您可以使用Iterator来遍历List、Set和Map等集合类型。演示代码:Listlist=newArrayList();list.add("one");list.add("two");list.add("three");Iteratoriterator=list.iterator();while(iter

Java Iterator 与 Iterable:解锁 Java 集合的强大力量 Java Iterator 与 Iterable:解锁 Java 集合的强大力量 Feb 19, 2024 pm 07:00 PM

在Java中,集合(collection)是一组元素的集合,提供了统一的接口和方法来存储、检索和操作这些元素。Iterator和Iterable是两个重要的Java接口,它们提供了遍历集合元素的通用机制。Iterator接口定义了用于遍历集合的hasNext()和next()方法。hasNext()方法用于检查集合中是否还有未遍历的元素,next()方法用于返回当前元素并将其移至下一个元素。Iterable接口定义了iterator()方法,该方法返回一个Iterator对象,用于遍历集合中的元

See all articles