对象无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 相关文章推荐
修改发贴的编辑功能
Mar 07 Javascript
用cssText批量修改样式
Aug 29 Javascript
动态的改变IFrame的高度实现IFrame自动伸展适应高度
Dec 28 Javascript
js新闻滚动 js如何实现新闻滚动效果
Jan 07 Javascript
js倒计时抢购实例
Dec 20 Javascript
浅谈js的url解析函数封装
Jun 28 Javascript
基于vue2.0实现的级联选择器
Jun 09 Javascript
iscroll-probe实现下拉刷新和下拉加载效果
Jun 28 Javascript
微信小程序删除处理详解
Aug 16 Javascript
vue项目中仿element-ui弹框效果的实例代码
Apr 22 Javascript
微信小程序嵌入腾讯视频源过程详解
Aug 08 Javascript
详解在IDEA中将Echarts引入web两种方式(使用js文件和maven的依赖导入)
Jul 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设置一边执行一边输出结果的代码
2013/09/30 PHP
微信支付开发维权通知实例
2016/07/12 PHP
浅谈thinkphp5 instance 的简单实现
2017/07/30 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
2017/12/21 PHP
一些常用且实用的原生JavaScript函数
2010/09/08 Javascript
js创建对象的几种常用方式小结(推荐)
2010/10/24 Javascript
JQuery伸缩导航练习示例
2013/11/13 Javascript
巧用jquery解决下拉菜单被Div遮挡的相关问题
2014/02/13 Javascript
js分页代码分享
2014/04/28 Javascript
用console.table()调试javascript
2014/09/04 Javascript
JavaScript中的变量作用域介绍
2014/12/31 Javascript
Js调用Java方法并互相传参的简单实例
2016/08/11 Javascript
Javascript循环删除数组中元素的几种方法示例
2017/05/18 Javascript
JavaScript在控件上添加倒计时功能的实现代码
2017/07/04 Javascript
vue.js的手脚架vue-cli项目搭建的步骤
2017/08/30 Javascript
基于zTree树形菜单的使用实例
2017/12/25 Javascript
vue实现裁切图片同时实现放大、缩小、旋转功能
2018/03/02 Javascript
vue组件jsx语法的具体使用
2018/05/21 Javascript
vue-cli项目根据线上环境分别打出测试包和生产包
2018/05/23 Javascript
深入浅析js原型链和vue构造函数
2018/10/25 Javascript
微信小程序实现bindtap等事件传参
2019/04/08 Javascript
layer iframe 设置关闭按钮的方法
2019/09/12 Javascript
Vue登录主页动态背景短视频制作
2019/09/21 Javascript
JavaScript 防抖和节流遇见的奇怪问题及解决
2020/11/20 Javascript
用ReactJS和Python的Flask框架编写留言板的代码示例
2015/12/19 Python
关于Python中空格字符串处理的技巧总结
2017/08/10 Python
Python 分发包中添加额外文件的方法
2019/08/16 Python
python 5个顶级异步框架推荐
2020/09/09 Python
在SQL Server中创建数据库主要有那种方式
2013/09/10 面试题
人事部岗位职责范本
2014/03/05 职场文书
政府门卫岗位职责
2014/04/29 职场文书
一年级小学生评语大全
2014/12/25 职场文书
幼儿园教师安全责任书
2015/05/08 职场文书
在职证明书模板
2015/06/15 职场文书
小学课改工作总结
2015/08/13 职场文书
盘点2020年适合农村地区创业的项目
2019/10/16 职场文书