对象无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 相关文章推荐
细品javascript 寻址,闭包,对象模型和相关问题
Apr 27 Javascript
WordPress 照片lightbox效果的运用几点
Jun 22 Javascript
javascript json2 使用方法
Mar 16 Javascript
简单的ajax连接库分享(不用jquery的ajax)
Jan 19 Javascript
JSON格式的键盘编码对照表
Jan 29 Javascript
jQuery中on()方法用法实例详解
Feb 06 Javascript
JavaScript中Number.NEGATIVE_INFINITY值的使用详解
Jun 05 Javascript
详解Bootstrap插件
Apr 25 Javascript
基于Vue2实现简易的省市区县三级联动组件效果
Nov 05 Javascript
利用Electron简单撸一个Markdown编辑器的方法
Jun 10 Javascript
微信小程序获取用户绑定手机号方法示例
Jul 21 Javascript
微信小程序实现音乐播放页面布局
Dec 11 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
PHP session有效期session.gc_maxlifetime
2011/04/20 PHP
ThinkPHP的常用配置选项汇总
2016/03/24 PHP
JavaScript 拖拉缩放效果
2008/12/10 Javascript
基于JQuery实现异步刷新的代码(转载)
2011/03/29 Javascript
在iframe里的页面编写js,实现在父窗口上创建动画效果展开和收缩的div(不变动iframe父窗口代码)
2011/12/20 Javascript
jQuery学习笔记(3)--用jquery(插件)实现多选项卡功能
2013/04/08 Javascript
用示例说明filter()与find()的用法以及children()与find()的区别分析
2013/04/26 Javascript
jQuery .attr()和.removeAttr()方法操作元素属性示例
2013/07/16 Javascript
基于jQuery实现的菜单切换效果
2015/10/16 Javascript
jquery validate.js表单验证入门实例(附源码)
2015/11/10 Javascript
Winform客户端向web地址传参接收参数的方法
2016/05/17 Javascript
Angular中$cacheFactory的作用和用法实例详解
2016/08/19 Javascript
javascript匀速动画和缓冲动画详解
2016/10/20 Javascript
详解AngularJS之$window窗口对象
2018/01/17 Javascript
微信小程序实现自定义picker选择器弹窗内容
2020/05/26 Javascript
微信运维交互机器人的示例代码
2018/11/12 Javascript
JavaScript简单实现动态改变HTML内容的方法示例
2018/12/25 Javascript
20道JS原理题助你面试一臂之力(必看)
2019/07/22 Javascript
python算法学习之桶排序算法实例(分块排序)
2013/12/18 Python
python实现简单的TCP代理服务器
2014/10/08 Python
Python多进程机制实例详解
2015/07/02 Python
深入理解Python中字典的键的使用
2015/08/19 Python
Python编程实现控制cmd命令行显示颜色的方法示例
2017/08/14 Python
解决python使用open打开文件中文乱码的问题
2017/12/29 Python
Django中如何使用sass的方法步骤
2019/07/09 Python
python opencv捕获摄像头并显示内容的实现
2019/07/11 Python
Python 实现将大图切片成小图,将小图组合成大图的例子
2020/03/14 Python
python3 kubernetes api的使用示例
2021/01/12 Python
HTML5 Canvas玩转酷炫大波浪进度图效果实例(附demo)
2016/12/14 HTML / CSS
iostream与iostream.h的区别
2015/01/16 面试题
与C++相比,Java中的数组有什么不同
2014/03/25 面试题
大学班级学风建设方案
2014/05/01 职场文书
学校四群教育实施方案
2014/06/12 职场文书
体育课外活动总结
2014/07/08 职场文书
六一儿童节致辞稿(3篇)
2019/07/11 职场文书
Mysql 设置boolean类型的操作
2021/06/04 MySQL