对象无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 页面坐标相关知识整理
Jan 09 Javascript
js锁屏解屏通过对$.ajax进行封装实现
Jul 31 Javascript
浅谈javascript中的加减时间
Jul 12 Javascript
轻松掌握JavaScript状态模式
Sep 07 Javascript
JS遍历ul下的li点击弹出li的索引的实现方法
Sep 19 Javascript
模板视图和AngularJS之间冲突的解决方法
Nov 22 Javascript
jQuery实现二维码扫描功能
Jan 09 Javascript
利用webstrom调试Vue.js单页面程序的方法教程
Jun 06 Javascript
微信小程序使用wx.request请求服务器json数据并渲染到页面操作示例
Mar 30 Javascript
uni-app实现获取验证码倒计时功能
Nov 01 Javascript
对vue生命周期的深入理解
Dec 03 Vue.js
vite2.0+vue3移动端项目实战详解
Mar 03 Vue.js
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 和 COM
2006/10/09 PHP
php cc攻击代码与防范方法
2012/10/18 PHP
php的webservice的wsdl的XML无法显示问题的解决方法
2014/03/11 PHP
PHP实现Soap通讯的方法
2014/11/03 PHP
VPS中使用LNMP安装WordPress教程
2014/12/28 PHP
详解php魔术方法(Magic methods)的使用方法
2016/02/14 PHP
Yii2 输出xml格式数据的方法
2016/05/03 PHP
PHP内存缓存功能memcached示例
2016/10/19 PHP
分享别人写的一个小型js框架
2007/08/13 Javascript
JQuery与Ajax常用代码实现对比
2009/10/03 Javascript
JavaScript Timer实现代码
2010/02/17 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(五)可移动地图的实现
2013/01/23 Javascript
HTTP 304错误的详细讲解
2013/11/13 Javascript
js实现获取div坐标的方法
2015/11/16 Javascript
jquery实现的table排序功能示例
2017/03/10 Javascript
JavaScript数据结构之二叉树的删除算法示例
2017/04/13 Javascript
关于vue-router路径计算问题
2017/05/10 Javascript
vue axios 表单提交上传图片的实例
2018/03/16 Javascript
VeeValidate在vue项目里表单校验应用案例
2018/05/09 Javascript
vue多层嵌套路由实例分析
2019/03/19 Javascript
JS大坑之19位数的Number型精度丢失问题详解
2019/04/22 Javascript
关于微信小程序map组件z-index的层级问题分析
2019/07/09 Javascript
Vue结合路由配置递归实现菜单栏功能
2020/06/16 Javascript
python操作ie登陆土豆网的方法
2015/05/09 Python
Python中的命令行参数解析工具之docopt详解
2017/03/27 Python
利用Python暴力破解zip文件口令的方法详解
2017/12/21 Python
Python生成器以及应用实例解析
2018/02/08 Python
python 使用turtule绘制递归图形(螺旋、二叉树、谢尔宾斯基三角形)
2019/05/30 Python
Python模块的定义,模块的导入,__name__用法实例分析
2020/01/07 Python
CSS3 background-image颜色渐变的实现代码
2018/09/13 HTML / CSS
我们是伦敦女孩:WalG
2018/01/08 全球购物
会计工作总结范文2014
2014/12/23 职场文书
财务总监岗位职责
2015/02/03 职场文书
停水通知
2015/04/16 职场文书
2015年公务员转正工作总结
2015/04/24 职场文书
docker compose 部署 golang 的 Athens 私有代理问题
2022/04/28 Servers