对象无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定时刷新页面及跳转页面的方法
Jul 04 Javascript
PHPMyAdmin导入时提示文件大小超出PHP限制的解决方法
Mar 30 Javascript
使用AngularJS处理单选框和复选框的简单方法
Jun 19 Javascript
jQuery 获取页面li数组并删除不在数组中的key
Aug 02 Javascript
javascript如何创建对象
Aug 29 Javascript
浅谈js继承的实现及公有、私有、静态方法的书写
Oct 28 Javascript
微信小程序 实现列表项滑动显示删除按钮的功能
Apr 13 Javascript
Angular实现预加载延迟模块的示例
Oct 12 Javascript
vue文件树组件使用详解
Mar 29 Javascript
vue使用Element组件时v-for循环里的表单项验证方法
Jun 28 Javascript
js+canvas实现简单扫雷小游戏
Jan 22 Javascript
ant design vue中表格指定格式渲染方式
Oct 28 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 skymvc 一款轻量、简单的php
2011/06/28 PHP
探讨:如何编写PHP扩展
2013/06/13 PHP
yii中widget的用法
2014/12/03 PHP
php输出图像的方法实例分析
2017/02/16 PHP
Javascript生成json的函数代码(可以用php的json_decode解码)
2012/06/11 Javascript
jQuery :first选择器使用介绍
2013/08/09 Javascript
jQuery自动切换/点击切换选项卡效果的小例子
2013/08/12 Javascript
jQuery 事件的命名空间简单了解
2013/11/22 Javascript
JavaScript类属性的访问方式详解
2014/02/11 Javascript
JavaScript 实现打印,打印预览,打印设置
2014/12/30 Javascript
Node.js开发者必须了解的4个JS要点
2016/02/21 Javascript
js实现精确到秒的倒计时效果
2016/05/29 Javascript
浅谈js控制li标签排序问题 js调用php函数的方法
2016/10/16 Javascript
浅析如何利用JavaScript进行语音识别
2016/10/27 Javascript
jQuery UI制作选项卡(tabs)
2016/12/13 Javascript
vue页面使用阿里oss上传功能的实例(二)
2017/08/09 Javascript
浅谈箭头函数写法在ReactJs中的使用
2017/08/22 Javascript
vue用addRoutes实现动态路由的示例
2017/09/15 Javascript
基于vue的验证码组件的示例代码
2019/01/22 Javascript
基于Vue实现微前端的示例代码
2020/04/24 Javascript
Python编程实现双击更新所有已安装python模块的方法
2017/06/05 Python
PyQt实现界面翻转切换效果
2018/04/20 Python
Python 在字符串中加入变量的实例讲解
2018/05/02 Python
HTML5给汉字加拼音收起展开组件的实现代码
2020/04/08 HTML / CSS
部队万能检讨书
2014/02/20 职场文书
统计岗位职责
2014/02/21 职场文书
办公室主任职责范本
2014/03/07 职场文书
《九寨沟》教学反思
2014/04/08 职场文书
企业安全生产责任书
2014/04/14 职场文书
优秀共产党员演讲稿
2014/09/04 职场文书
银行授权委托书范本
2014/10/04 职场文书
个人房屋买卖协议书(范本)
2014/10/04 职场文书
外贸采购员岗位职责
2015/04/03 职场文书
使用Vue3+Vant组件实现App搜索历史记录功能(示例代码)
2021/06/09 Vue.js
Redisson实现Redis分布式锁的几种方式
2021/08/07 Redis
SQL Server中常用截取字符串函数介绍
2022/03/16 SQL Server