老铁们大家都知道除了数组还有一个伪数组,函数中arguments代表的是实参,他就是一个典型的伪数组;下面帮大家区分一下数组和伪数组:
首先什么是伪数组:
1、伪数组是一个对象
2、这个对象必须要有length属性
3、如果这个对象的length不为0,那么必须要有按照下标存储的数据
不是伪数组
var obj = {};
var obj2 = { lhengt: 3 };
是伪数组
var obj3 = { length: 0 };
var obj4 = { 0: '888', length: 1 };
var obj5 = { 99: 'abc', length: 100 }
如何判断数据是不是伪数组:
1、首先他是个对象
2、是对象,有length属性
3、有length,值必须是number类型
4、length值是number类型,并且值不为0,这个对象还得按照下标存储数据
如何判断数据是不是真数组:
1、数据 instanceof Array
2、Object.prototype.toString.call( 数据 ) === '[object Array]'
伪数组转标准数组:
方法一、Array.prototype.slice.call( 数据 )
方法二、 声明一个空数组,通过遍历伪数组把它们重新添加到新的数组中
也不知道大家有没有看懂这篇文章,希望能帮助大家了解伪数组,如果有不明白的可以加入我们的