伪数组和真数组

/*
* 什么是伪数组
* 1、伪数组是一个对象
* 2、这个对象必须要有length属性
* 3、如果这个对象的length不为0,那么必须要有按照下标存储的数据
* */

// 不是伪数组
var obj = {};
var obj2 = { length: 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]'
* */

原文地址:https://www.cnblogs.com/luxiaoxiao/p/6099471.html