什么是伪数组:
1、伪数组是一个对象;
2、这个对象必须有length属性;
3、如果这个对象的length不为0,那么必须要有按照下标存储的数据。
var obj = {}; // 非伪数组
var obj1 = {length: 10}; // 非伪数组
var obj2 = {length: 0}; // 伪数组
var obj3 = {0: '123', length: 1}; // 伪数组
var obj4 = {99: '123', length: 100}; // 伪数组
如何判断数据是不是伪数组:
1、首先伪数组是一个对象;
2、有 length 属性;
3、length 属性必须是 number 类型;
4、length 的值是 number 类型,并且值不为 0,这个对象需要按照下标存储数据。
如何判断数据是不是真数组:
1、数据 instanceof Array
2、Object.prototype.toString.call(数据) === '[object Array]'
伪数组如何转换为真数组:
1、Array.prototype.slice.call(数据)
2、声明一个空数组,通过遍历伪数组把它们重新添加到新的数组中
想了解JS判断数据类型的请看这里:https://www.jianshu.com/p/af835141b683