手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >对象无length属性时IE6/IE7中无法将其转换成伪数组(ArrayLike)
对象无length属性时IE6/IE7中无法将其转换成伪数组(ArrayLike)
摘要:有时需要将数组转成伪数组(ArrayLike),如下复制代码代码如下:varary=['one','two','three'];varobj...

有时需要将数组转成伪数组(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]);

}

【对象无length属性时IE6/IE7中无法将其转换成伪数组(ArrayLike)】相关文章:

jQuery实现控制文字内容溢出用省略号(…)表示的方法

js对象和json对象互相转换的问题

JS函数实现鼠标指向图片后显示大图代码

微信jssdk在iframe页面失效问题的解决措施

js实现一个链接打开两个链接地址的方法

快速掌握Node.js环境的安装与运行方法

document 和 document.all 分别什么时候用

浅谈Javascript线程及定时机制

图片加载进度实时显示

JQuery分屏指示器图片轮换效果实例

精品推荐
分类导航