对象无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 相关文章推荐
双击滚屏-常用推荐
Nov 29 Javascript
jQuery 中使用JSON的实现代码
Dec 01 Javascript
基于jQuery实现仿淘宝套餐选择插件
Mar 04 Javascript
JavaScript实现在页面间传值的方法
Apr 07 Javascript
js如何判断访问是来自搜索引擎(蜘蛛人)还是直接访问
Sep 14 Javascript
javascript函数自动执行常用方法汇总
Mar 28 Javascript
JavaScript循环遍历你会用哪些之小结篇
Sep 28 Javascript
用原生 JS 实现 innerHTML 功能实例详解
Apr 03 Javascript
微信小程序表单验证WxValidate的使用
Nov 27 Javascript
Vue 中 template 有且只能一个 root的原因解析(源码分析)
Apr 11 Javascript
JavaScript this指向相关原理及实例解析
Jul 10 Javascript
vue实现移动端拖动排序
Aug 21 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 file_exists无效的解决办法
2013/06/26 PHP
php对称加密算法示例
2014/05/07 PHP
浅谈PHP值mysql操作类
2016/06/29 PHP
认识延迟时间为0的setTimeout
2008/05/16 Javascript
JS定义回车事件(实现代码)
2013/07/08 Javascript
jquery中checkbox全选失效的解决方法
2014/12/26 Javascript
原生JavaScript实现动态省市县三级联动下拉框菜单实例代码
2016/02/03 Javascript
基于Bootstrap的Metronic框架实现条码和二维码的生成及打印处理操作
2016/08/29 Javascript
详解nodejs操作mongodb数据库封装DB类
2017/04/10 NodeJs
React Form组件的实现封装杂谈
2018/05/07 Javascript
layui table设置前台过滤转义等方法
2018/08/17 Javascript
Vue2.2.0+新特性整理及注意事项
2018/08/22 Javascript
angularJs中$scope数据序列化的实例
2018/09/30 Javascript
自定义javascript验证框架示例【附源码下载】
2019/05/31 Javascript
vue使用@scroll监听滚动事件时,@scroll无效问题的解决方法详解
2019/10/15 Javascript
利用webpack理解CommonJS和ES Modules的差异区别
2020/06/16 Javascript
微信小程序实现上传多张图片、删除图片
2020/07/29 Javascript
简单的Python的curses库使用教程
2015/04/11 Python
Python实现删除文件但保留指定文件
2015/06/21 Python
Python中的错误和异常处理简单操作示例【try-except用法】
2017/07/25 Python
Python理解递归的方法总结
2019/01/28 Python
深入了解python中元类的相关知识
2019/08/29 Python
Django多进程滚动日志问题解决方案
2019/12/17 Python
python爬虫数据保存到mongoDB的实例方法
2020/07/28 Python
Python常用外部指令执行代码实例
2020/11/05 Python
美国CVS药店官网:CVS Pharmacy
2018/07/26 全球购物
开展党的群众路线教育实践活动方案
2014/02/05 职场文书
大学生职业生涯规划书参考模板
2014/03/05 职场文书
信息员培训方案
2014/06/12 职场文书
2014年幼儿园学期工作总结
2014/12/05 职场文书
小学国庆节活动总结
2015/03/23 职场文书
写作技巧:如何撰写商业计划书
2019/08/08 职场文书
创业计划书之香辣虾火锅
2019/09/23 职场文书
源码解读Spring-Integration执行过程
2021/06/11 Java/Android
解决mysql的int型主键自增问题
2021/07/15 MySQL
Python 多线程处理任务实例
2021/11/07 Python