对象无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 相关文章推荐
js 替换
Feb 19 Javascript
JavaScript设置FieldSet展开与收缩
May 15 Javascript
用js实现计算加载页面所用的时间
Apr 02 Javascript
jQuery LigerUI 使用教程表格篇(1)
Jan 18 Javascript
jQuery中实现动画效果的基本操作介绍
Apr 16 Javascript
javascript制作坦克大战全纪录(1)
Nov 27 Javascript
JS实现从顶部下拉显示的带动画QQ客服特效代码
Oct 24 Javascript
javascript原生ajax写法分享
Apr 10 Javascript
Vue过滤器的用法和自定义过滤器使用
Feb 08 Javascript
vue.js vue-router如何实现无效路由(404)的友好提示
Dec 20 Javascript
JavaScript作用域、闭包、对象与原型链概念及用法实例总结
Aug 20 Javascript
vue项目持久化存储数据的实现代码
Oct 01 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获取用户浏览器版本的方法
2015/01/03 PHP
php中array_slice和array_splice函数解析
2016/10/18 PHP
利用PHP扩展Xhprof分析项目性能实践教程
2018/09/05 PHP
Javascript var变量隐式声明方法
2009/10/19 Javascript
基于jQuery的前端数据通用验证库
2011/08/08 Javascript
jQuery不间断滚动效果(模拟百度新闻支持文字/图片/垂直滚动)
2013/02/05 Javascript
js生成随机数之random函数随机示例
2013/12/20 Javascript
JavaScript多并发问题如何处理
2015/10/28 Javascript
jQuery选择器用法实例详解
2015/12/17 Javascript
JavaScript+html5 canvas绘制的小人效果
2016/01/27 Javascript
PassWord输入框代码分享
2016/06/07 Javascript
JS简单生成两个数字之间随机数的方法
2016/08/03 Javascript
jQuery实现的超链接提示效果示例【附demo源码下载】
2016/09/09 Javascript
BootstrapValidator超详细教程(推荐)
2016/12/07 Javascript
jQuery实现页面滚动时智能浮动定位
2017/01/08 Javascript
AngularJS常见过滤器用法实例总结
2017/07/06 Javascript
小程序从手动埋点到自动埋点的实现方法
2019/01/24 Javascript
详解VUE前端按钮权限控制
2019/04/26 Javascript
js获取对象,数组所有属性键值(key)和对应值(value)的方法示例
2019/06/19 Javascript
解决jquery validate 验证不通过后验证正确的信息仍残留在label上的方法
2019/08/27 jQuery
js中offset,client , scroll 三大元素知识点总结
2019/09/11 Javascript
[44:47]Ti4 循环赛第三日 iG vs NaVi
2014/07/12 DOTA
Python 实现 贪吃蛇大作战 代码分享
2016/09/07 Python
Python 搭建Web站点之Web服务器网关接口
2016/11/06 Python
Python爬虫DOTA排行榜爬取实例(分享)
2017/06/13 Python
利用python获取Ping结果示例代码
2017/07/06 Python
python数据结构之链表详解
2017/09/12 Python
Farfetch美国:奢侈品牌时尚购物平台
2019/05/02 全球购物
可爱的童装和鞋子:Fabkids
2019/08/16 全球购物
Currentbody法国:健康与美容高科技产品
2020/08/16 全球购物
大学生毕业求职找工作的自我评价
2013/09/29 职场文书
常务副总经理岗位职责
2014/04/12 职场文书
学校推普周活动总结
2015/05/07 职场文书
出纳试用期工作总结2015
2015/05/28 职场文书
色戒观后感
2015/06/12 职场文书
劳动合同变更协议书范本
2019/04/18 职场文书