javascript if(Array.isArray(obj)){ // obj是一个数组 } else { // obj不是一个数组 }
Array.isArray()方法可以检测真正的数组,而不是类数组对象。
类数组对象是指具有length属性,并且可以通过下标访问元素的对象,例如arguments对象、DOM NodeList 对象等。
因此如果要判断一个对象是否是类数组对象,可以使用以下方法:
javascript function isArrayLike(obj){ if(obj && typeof obj === 'object' && isFinite(obj.length) && obj.length >= 0 && obj.length === Math.floor(obj.length) && obj.length < 4294967296){ return true; } else { return false; } }
这个方法会先判断对象是否为真(即非null、非undefined),然后判断是否为对象,接着判断对象是否具有有限的长度,并且长度为非负整数,并且长度为整数,并且长度不大于2^32-1。
如果对象满足上述条件,则返回true,否则返回false。