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


Posted in Javascript onFebruary 11, 2014

摘要: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()方法。
Javascript 相关文章推荐
jQuery的DOM操作之删除节点示例
Jan 03 Javascript
IE中getElementsByName()对有些元素无效的解决方案
Sep 28 Javascript
AngularJS基础学习笔记之简单介绍
May 10 Javascript
JavaScript保留关键字汇总
Dec 01 Javascript
jQuery页面刷新(局部、全部)问题分析
Jan 09 Javascript
BootStrap入门教程(三)之响应式原理
Sep 19 Javascript
通过扫描二维码打开app的实现代码
Nov 10 Javascript
javascript实现简单的可随机变色网页计算器示例
Dec 30 Javascript
JS实现数组去重方法总结(六种方法)
Jul 14 Javascript
二维码图片生成器QRCode.js简单介绍
Aug 18 Javascript
electron+vue实现div contenteditable截图功能
Jan 07 Javascript
JavaScript canvas绘制折线图
Feb 18 Javascript
Chrome扩展页面动态绑定JS事件提示错误
Feb 11 #Javascript
关于页面嵌入swf覆盖div层的问题的解决方法
Feb 11 #Javascript
关闭浏览器输入框自动补齐 兼容IE,FF,Chrome等主流浏览器
Feb 11 #Javascript
js读取配置文件自写
Feb 11 #Javascript
JS检测输入字符是否包含非法字符的示例代码
Feb 11 #Javascript
JS(JQuery)操作Array的相关方法介绍
Feb 11 #Javascript
jquery 字符串切割函数substring的用法说明
Feb 11 #Javascript
You might like
繁体中文转换为简体中文的PHP函数
2006/10/09 PHP
简单谈谈favicon
2015/06/10 PHP
各种快递查询--Api接口
2016/04/26 PHP
thinkPHP数据查询常用方法总结【select,find,getField,query】
2017/03/15 PHP
flash调用js中的方法,让js传递变量给flash的办法及思路
2013/08/07 Javascript
node.js开发中使用Node Supervisor实现监测文件修改并自动重启应用
2014/11/04 Javascript
JS实现5秒钟自动封锁div层的方法
2015/02/20 Javascript
如何动态加载外部Javascript文件
2015/12/02 Javascript
js+css实现回到顶部按钮(back to top)
2016/03/02 Javascript
轻松掌握JavaScript策略模式
2016/08/25 Javascript
angular写一个列表的选择全选交互组件的示例
2018/01/22 Javascript
JS中实现隐藏部分姓名或者电话号码的代码
2018/07/17 Javascript
angular6根据environments配置文件更改开发所需要的环境的方法
2019/03/06 Javascript
Vue实现简单计算器案例
2020/02/25 Javascript
react实现复选框全选和反选组件效果
2020/08/25 Javascript
python并发2之使用asyncio处理并发
2017/12/21 Python
python字符串常用方法
2018/06/14 Python
基于随机梯度下降的矩阵分解推荐算法(python)
2018/08/31 Python
python查看模块,对象的函数方法
2018/10/16 Python
讲解Python3中NumPy数组寻找特定元素下标的两种方法
2019/08/04 Python
python给指定csv表格中的联系人群发邮件(带附件的邮件)
2019/12/31 Python
css3 给背景设置渐变色的方法
2019/09/12 HTML / CSS
css3针对移动端卡顿问题的解决(动画性能优化)
2020/02/14 HTML / CSS
四种会话跟踪技术
2015/05/20 面试题
餐饮部总监岗位职责范文
2014/02/13 职场文书
幼儿园小班评语大全
2014/04/17 职场文书
岗位说明书范文
2014/05/07 职场文书
关于青春的演讲稿三分钟
2014/08/22 职场文书
校园广播稿精选
2014/10/01 职场文书
农村结婚典礼主持词
2015/06/29 职场文书
2016庆祝国庆67周年宣传语
2015/11/25 职场文书
2016年优秀团支部事迹材料
2016/02/26 职场文书
教你怎么用Python生成九宫格照片
2021/05/20 Python
苹果M1芯片安装nginx 并且部署vue项目步骤详解
2021/11/20 Servers
关于Nginx中虚拟主机的一些冷门知识小结
2022/03/03 Servers
Python实现视频自动打码的示例代码
2022/04/08 Python