对象无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 相关文章推荐
一个很简单的办法实现TD的加亮效果.
Jun 29 Javascript
js获取单选按钮的数据
Nov 27 Javascript
jQuery中选择器小问题(新人难免遇到)
Mar 31 Javascript
使用jquery修改表单的提交地址基本思路
Jun 04 Javascript
比例尺、缩略图、平移缩放之百度地图添加控件方法
Aug 03 Javascript
jQuery实现表格元素动态创建功能
Jan 09 Javascript
深入理解JavaScript继承的多种方式和优缺点
May 12 Javascript
详解Vue-Cli 异步加载数据的一些注意点
Aug 12 Javascript
关于axios如何全局注册浅析
Jan 14 Javascript
js中对象和面向对象与Json介绍
Jan 21 Javascript
如何用webpack4.0撸单页/多页脚手架 (jquery, react, vue, typescript)
Jun 18 jQuery
bootstrap-treeview实现多级树形菜单 后台JSON格式如何组织?
Jul 26 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与SQL注入攻击[一]
2007/04/17 PHP
了解Joomla 这款来自国外的php网站管理系统
2010/03/11 PHP
PHP获取http请求的头信息实现步骤
2012/12/16 PHP
解决cPanel无法安装php5.2.17
2014/06/22 PHP
使用新浪微博API的OAuth认证发布微博实例
2015/03/27 PHP
php递归函数三种实现方法及如何实现数字累加
2015/08/07 PHP
PHP仿微信发红包领红包效果
2016/10/30 PHP
PHP7下协程的实现方法详解
2017/12/17 PHP
JavaScript Base64编码和解码,实现URL参数传递。
2006/09/18 Javascript
在服务端(Page.Write)调用自定义的JS方法详解
2013/08/09 Javascript
javascript实现网页字符定位的方法
2015/07/14 Javascript
基于node实现websocket协议
2016/04/25 Javascript
jQuery UI Grid 模态框中的表格实例代码
2017/04/01 jQuery
Iphone手机、安卓手机浏览器控制默认缩放大小的方法总结(附代码)
2017/08/18 Javascript
基于twbsPagination.js分页插件使用心得(分享)
2017/10/21 Javascript
基于webpack.config.js 参数详解
2018/03/20 Javascript
VUE预渲染及遇到的坑
2018/09/03 Javascript
详解vue挂载到dom上会发生什么
2019/01/20 Javascript
vue动态设置路由权限的主要思路
2021/01/13 Vue.js
asyncio 的 coroutine对象 与 Future对象使用指南
2016/09/11 Python
完美解决python遍历删除字典里值为空的元素报错问题
2016/09/11 Python
python中urllib.unquote乱码的原因与解决方法
2017/04/24 Python
python中的decorator的作用详解
2018/07/26 Python
Python延时操作实现方法示例
2018/08/14 Python
pyqt5之将textBrowser的内容写入txt文档的方法
2019/06/21 Python
Python产生一个数值范围内的不重复的随机数的实现方法
2019/08/21 Python
python线程定时器Timer实现原理解析
2019/11/30 Python
CSS3盒子模型详解
2013/04/24 HTML / CSS
英国领先的运动营养品牌:Protein Dynamix
2018/01/02 全球购物
加拿大时尚床上用品零售商:QE Home | Quilts Etc
2018/01/22 全球购物
《狼》教学反思
2014/03/02 职场文书
《北京的春节》教学反思
2014/04/07 职场文书
中秋晚会策划方案
2014/06/12 职场文书
《只有一个地球》教学反思
2016/02/16 职场文书
解决WINDOWS电脑开机后桌面没有任何图标
2022/04/09 数码科技
Go语言的协程上下文的几个方法和用法
2022/04/11 Golang