对象无length属性时IE6/IE7中无法将其转换成伪数组(ArrayLike)


Posted in Javascript onJuly 31, 2011

有时需要将数组转成伪数组(ArrayLike),如下

var ary = ['one','two','three']; 
var obj = {}; // 没有length属性 
Array.prototype.push.apply(obj, ary); 
for(var i in obj){ 
alert(i + ': ' + obj[i]); 
}

IE8/9/Firefox/Safari/Chrome 依次弹出了obj的key及其value。即能转换成ArrayLike。
但IE6/7下则不能,没有输出任何信息表明obj仍然是个空对象。
如果给obj加个length属性,情况则不同
var ary = ['one','two','three']; 
var obj = {length:0}; // 有length,值为0 
Array.prototype.push.apply(obj, ary); 
for(var i in obj){ 
alert(i + ': ' + obj[i]); 
}

这次IE6/7(所有浏览器)中均弹出了key及其value,都能转换成ArrayLike
注意,length只能赋值为0而非它值,否则得到的对象key和value就不是一一对应的了。
var ary = ['one','two','three']; 
var obj = {length:2}; // 有length,非零值 
Array.prototype.push.apply(obj, ary); 
for(var i in obj){ 
alert(i + ': ' + obj[i]); 
}
Javascript 相关文章推荐
jquery checkbox全选、取消全选实现代码
Mar 05 Javascript
js随机颜色代码的多种实现方式
Apr 23 Javascript
SOSO地图JS画出标注和中心点以html形式运行
Aug 09 Javascript
js解决弹窗问题实现班级跳转DIV示例
Jan 06 Javascript
node.js操作mongodb学习小结
Apr 25 Javascript
setTimeout内不支持jquery的选择器的解决方案
Apr 28 Javascript
jQuery实现带渐显效果的人物多级关系图代码
Oct 16 Javascript
Bootstrap插件全集
Jul 18 Javascript
让编辑器支持word复制黏贴、截屏的js代码
Oct 17 Javascript
深入理解js中的加载事件
Feb 08 Javascript
快速解决layui弹窗按enter键不停弹窗的问题
Sep 18 Javascript
vue.js this.$router.push获取不到params参数问题
Mar 03 Javascript
javascript中length属性的探索
Jul 31 #Javascript
javascript string字符串优化问题
Jul 31 #Javascript
超级有用的13个基于jQuery的内容滚动插件和教程
Jul 31 #Javascript
基于JQuery 的消息提示框效果代码
Jul 31 #Javascript
使用基于jquery的gamequery插件做JS乒乓球游戏
Jul 31 #Javascript
JQuery通过Ajax提交表单并返回结果
Jul 31 #Javascript
Dreamweaver jQuery智能提示插件,支持版本提示,支持1.6api
Jul 31 #Javascript
You might like
如何去掉文章里的 html 语法
2006/10/09 PHP
用PHP实现Ftp用户的在线管理的代码
2007/03/06 PHP
为PHP5.4开启Zend OPCode缓存
2014/12/26 PHP
JAVASCRIPT下判断IE与FF的比较简单的方式
2008/10/17 Javascript
基于jQuery的图片大小自动适应实现代码
2010/11/17 Javascript
jQuery EasyUI API 中文文档 - Dialog对话框
2011/11/15 Javascript
NodeJS的url截取模块url-extract的使用实例
2013/11/18 NodeJs
手机端网页点击链接触发自动拨打或保存电话的示例代码
2014/08/15 Javascript
jquery分析文本里url或邮件地址为真实链接的方法
2015/06/20 Javascript
NodeJS创建基础应用并应用模板引擎
2016/04/12 NodeJs
js实现控制textarea输入字符串的个数,鼠标按下抬起判断输入字符数
2016/10/25 Javascript
JavaScript判断浏览器对CSS3属性是否支持的多种方法
2016/11/13 Javascript
layui文件上传实现代码
2017/05/20 Javascript
微信小程序 跳转传递数据的实例
2017/07/06 Javascript
如何重置vue打印变量的显示方式
2017/12/06 Javascript
React组件重构之嵌套+继承及高阶组件详解
2018/07/19 Javascript
vue-cli3+typescript新建一个项目的思路分析
2019/08/06 Javascript
vue fetch中的.then()的正确使用方法
2020/04/17 Javascript
Pyspider中给爬虫伪造随机请求头的实例
2018/05/07 Python
让代码变得更易维护的7个Python库
2018/10/09 Python
python学生管理系统开发
2019/01/30 Python
Django处理Ajax发送的Get请求代码详解
2019/07/29 Python
python并发爬虫实用工具tomorrow实用解析
2019/09/25 Python
python求一个字符串的所有排列的实现方法
2020/02/04 Python
利用scikitlearn画ROC曲线实例
2020/07/02 Python
25个CSS3动画按钮和菜单教程分享
2012/10/03 HTML / CSS
Application Cache未缓存文件无法访问无法加载问题
2014/05/31 HTML / CSS
在使用非全零作为空指针内部表达的机器上, NULL是如何定义
2014/11/09 面试题
销售自荐信
2013/10/22 职场文书
项目经理岗位职责范本
2015/04/01 职场文书
商场圣诞节活动总结
2015/05/06 职场文书
美丽人生观后感
2015/06/03 职场文书
大学文艺委员竞选稿
2015/11/19 职场文书
好段摘抄大全(48句)
2019/08/08 职场文书
详解MySQL 用户权限管理
2021/04/20 MySQL
源码分析Redis中 set 和 sorted set 的使用方法
2022/03/22 Redis