对象无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功能函数(2009-06-04更新)
Jun 04 Javascript
不安全的常用的js写法
Sep 15 Javascript
原生js实现的贪吃蛇网页版游戏完整实例
May 18 Javascript
js+html5实现的自由落体运动效果代码
Jan 28 Javascript
JavaScript toUpperCase()方法使用详解
Aug 26 Javascript
用headjs来管理和加载js 提高网站加载速度
Nov 29 Javascript
常用的几个JQuery代码片段
Mar 13 Javascript
JS时间控制实现动态效果的实例讲解
Jul 31 Javascript
js保留两位小数方法总结
Jan 31 Javascript
JS实现拖拽元素时与另一元素碰撞检测
Aug 27 Javascript
Javascript实现打鼓效果
Jan 29 Javascript
TypeScript实用技巧 Nominal Typing名义类型详解
Sep 23 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基础知识:类与对象(1)
2006/12/13 PHP
PHP获取表单textarea数据中的换行问题
2010/09/10 PHP
php实现的双色球算法示例
2017/06/20 PHP
javascript基本语法分析说明
2008/06/15 Javascript
JQuery中getJSON的使用方法
2010/12/13 Javascript
javascript获取xml节点的最大值(实现代码)
2013/12/11 Javascript
jQuery选择器全面总结
2014/01/06 Javascript
常用的JS验证和函数汇总
2014/12/23 Javascript
JavaScript之Vue.js【入门基础】
2016/12/06 Javascript
VUE简单的定时器实时刷新的实现方法
2019/01/20 Javascript
kafka调试中遇到Connection to node -1 could not be established. Broker may not be available.
2019/09/17 Javascript
python中Genarator函数用法分析
2015/04/08 Python
Python实现简单的四则运算计算器
2016/11/02 Python
python print 按逗号或空格分隔的方法
2018/05/02 Python
python中csv文件的若干读写方法小结
2018/07/04 Python
在Python中实现替换字符串中的子串的示例
2018/10/31 Python
python+pyqt5实现24点小游戏
2019/01/24 Python
python频繁写入文件时提速的方法
2019/06/26 Python
Tensorflow模型实现预测或识别单张图片
2019/07/19 Python
使用Python刷淘宝喵币(低阶入门版)
2019/10/30 Python
django admin后管定制-显示字段的实例
2020/03/11 Python
Python实现一个简单的递归下降分析器
2020/08/01 Python
python简单实现9宫格图片实例
2020/09/03 Python
python 实现一个简单的线性回归案例
2020/12/17 Python
python 如何用urllib与服务端交互(发送和接收数据)
2021/03/04 Python
长安大学毕业生自我鉴定
2014/01/17 职场文书
协议书格式
2014/04/23 职场文书
产品包装策划方案
2014/05/18 职场文书
党支部创先争优活动总结
2014/08/28 职场文书
班子成员四风问题自我剖析材料
2014/09/29 职场文书
中秋客户感谢信
2015/01/22 职场文书
教师学期个人总结
2015/02/11 职场文书
社区文明倡议书
2015/04/28 职场文书
《全神贯注》教学反思
2016/02/22 职场文书
导游词之北京明十三陵
2019/10/28 职场文书
pytorch--之halfTensor的使用详解
2021/05/24 Python