最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

对象无length属性时IE6/IE7中无法将其转换成伪数组(ArrayLike)_javascript技巧

来源:动视网 责编:小采 时间:2020-11-27 20:59:59
文档

对象无length属性时IE6/IE7中无法将其转换成伪数组(ArrayLike)_javascript技巧

对象无length属性时IE6/IE7中无法将其转换成伪数组(ArrayLike)_javascript技巧:有时需要将数组转成伪数组(ArrayLike),如下 代码如下: var ary = ['one','two','three']; var obj = {}; // 没有length属性 Array.prototype.push.apply(obj, ary); for(var i in obj){ alert(i + ': '
推荐度:
导读对象无length属性时IE6/IE7中无法将其转换成伪数组(ArrayLike)_javascript技巧:有时需要将数组转成伪数组(ArrayLike),如下 代码如下: var ary = ['one','two','three']; var obj = {}; // 没有length属性 Array.prototype.push.apply(obj, ary); for(var i in obj){ alert(i + ': '


有时需要将数组转成伪数组(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技巧

对象无length属性时IE6/IE7中无法将其转换成伪数组(ArrayLike)_javascript技巧:有时需要将数组转成伪数组(ArrayLike),如下 代码如下: var ary = ['one','two','three']; var obj = {}; // 没有length属性 Array.prototype.push.apply(obj, ary); for(var i in obj){ alert(i + ': '
推荐度:
标签: le // len
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top