对象无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支持firefox,ie7页面布局拖拽效果代码
Dec 20 Javascript
node.js+express制作网页计算器
Jan 17 Javascript
详解JavaScript设计模式开发中的桥接模式使用
May 18 Javascript
JS禁止查看网页源代码的实现方法
Oct 12 Javascript
如何选择jQuery版本 1.x? 2.x? 3.x?
Apr 01 jQuery
yarn的使用与升级Node.js的方法详解
Jun 04 Javascript
原生JS实现网页手机音乐播放器 歌词同步播放的示例
Feb 02 Javascript
mpvue中使用flyjs全局拦截的实现代码
Sep 13 Javascript
vue.js自定义组件directives的实例代码
Nov 09 Javascript
React 实现拖拽功能的示例代码
Jan 06 Javascript
js遍历详解(forEach, map, for, for...in, for...of)
Aug 28 Javascript
Vue ECharts实现机舱座位选择展示功能
May 15 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之APC缓存详细介绍 apc模块安装
2014/01/13 PHP
Thinkphp搭建包括JS多语言的多语言项目实现方法
2014/11/24 PHP
PHP中file_get_contents函数抓取https地址出错的解决方法(两种方法)
2015/09/22 PHP
PHP实现判断数组是一维、二维或几维的方法
2017/02/06 PHP
laravel实现上传图片的两种方式小结
2019/10/12 PHP
javascript 面向对象编程基础:封装
2009/08/21 Javascript
javascript 获取所有id中包含某关键字的控件的实现代码
2010/11/25 Javascript
解决遍历时Array.indexOf产生的性能问题
2012/07/03 Javascript
js 实现菜单上下显示附效果图
2013/11/21 Javascript
jquery中ready()函数执行的时机和window的load事件比较
2015/06/22 Javascript
JavaScript交换两个变量值的七种解决方案
2016/12/01 Javascript
jquery实现折叠菜单效果【推荐】
2017/03/08 Javascript
AngularJS与后端php的数据交互方法
2018/08/13 Javascript
解决三元运算符 报错“SyntaxError: can''t assign to conditional expression”
2020/02/12 Javascript
JS实现放烟花效果
2020/03/10 Javascript
一个超级简单的python web程序
2014/09/11 Python
Python脚本判断 Linux 是否运行在虚拟机上
2015/04/25 Python
python通过定义一个类实例作为ftp回调方法
2015/05/04 Python
在Python的Flask中使用WTForms表单框架的基础教程
2016/06/07 Python
基于Python和Scikit-Learn的机器学习探索
2017/10/16 Python
python将一个英文语句以单词为单位逆序排放的方法
2018/12/20 Python
python 实现矩阵上下/左右翻转,转置的示例
2019/01/23 Python
django query模块
2019/04/20 Python
python 利用turtle模块画出没有角的方格
2019/11/23 Python
PyTorch使用cpu加载模型运算方式
2020/01/13 Python
Python tkinter布局与按钮间距设置方式
2020/03/04 Python
Python响应对象text属性乱码解决方案
2020/03/31 Python
HTML5表单验证特性(知识点小结)
2020/03/10 HTML / CSS
什么是重载?CTS、CLS和CLR分别做何解释
2012/05/06 面试题
GWT (Google Web Toolkit)有哪些主要的原件组成?
2015/06/08 面试题
六一儿童节活动策划方案
2014/01/27 职场文书
总经理助理的职责
2014/03/14 职场文书
爱心活动计划书
2014/04/26 职场文书
投标诚信承诺书
2014/05/26 职场文书
PyTorch 如何设置随机数种子使结果可复现
2021/05/12 Python
mysql 排序失效
2022/05/20 MySQL