手机
当前位置:查字典教程网 >编程开发 >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)】相关文章:

Javascript实现每日自动换一张图片的方法

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

JavaScript对表格或元素按文本,数字或日期排序的方法

3张图片循环组和(很有动感)

document.getElementById的一些细节

JS验证IP,子网掩码,网关和MAC的方法

使用RequireJS优化JavaScript引用代码的方法

判断checkbox选择的个数 多浏览器

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

jQuery异步上传文件插件ajaxFileUpload详细介绍

精品推荐
分类导航