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

时间:2024-04-17 09:49:44 

有时需要将数组转成伪数组(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
0
投稿

猜你喜欢

  • Python中plt.imshow(image)无法显示图片的解决

    2022-01-12 15:33:04
  • PHP实现打包下载文件的方法示例

    2024-05-11 09:45:54
  • Python+matplotlib实现绘制等高线图示例详解

    2022-09-18 05:44:11
  • python如何制作英文字典

    2021-12-01 10:30:00
  • 使用Template格式化Python字符串的方法

    2021-08-07 14:42:35
  • 动态刷新 dorado树的js代码

    2024-04-18 09:34:21
  • 浅析mysql.data.dll驱动各版本介绍

    2024-01-24 04:26:30
  • PyCharm2018 安装及破解方法实现步骤

    2022-02-02 10:46:15
  • Golang strings包常用字符串操作函数

    2024-02-16 22:23:14
  • SQLServer 数据导入导出的几种方法小结

    2024-01-25 02:13:05
  • echarts报错Cannot read properties of null (reading ‘getAttribute‘)的解决

    2024-04-17 10:04:06
  • python遍历序列enumerate函数浅析

    2022-10-31 01:34:21
  • Django实现内容缓存实例方法

    2021-04-19 20:47:41
  • python3.6使用pymysql连接Mysql数据库

    2024-01-27 13:00:48
  • 基于mysql实现group by取各分组最新一条数据

    2024-01-13 05:48:18
  • python中@property的作用和getter setter的解释

    2022-08-14 21:12:39
  • 详解Laravel模型事件和模型事件在Trait中的使用

    2023-06-17 17:19:28
  • opencv中颜色空间转换函数cv2.cvtColor()使用

    2023-03-10 18:22:38
  • 详解oracle mysql 中的“不等于“ <> != ^= is not

    2024-01-25 03:35:08
  • django框架使用方法详解

    2021-07-07 18:12:00
  • asp之家 网络编程 m.aspxhome.com