方式一:
Array.prototype.isPrototypeOf(obj) && obj.length > 0
方式二:
obj && obj.length > 0
方式三:
Array.prototype.isPrototypeOf(obj) && JSON.stringify(obj) !== '[]'
说明:
isPrototypeOf() 方法用于测试一个对象是否存在于另一个对象的原型链上。即判断 Object 是否存在于 obj 的原型链上。需要注意的是,js 中一切皆是对象,也就是说,Object 也存在于数组的原型链上,因此这里数组需要先于对象检验。
isPrototypeOf 和 instanceof operator 是不一样的。在表达式 object instanceof AFunction 中,检测的是 AFunction.prototype 是否在object 的原型链中,而不是检测 AFunction 自身。
该方法属于 ES3 标准,现代浏览器均支持,包括 IE。
参考:https://www.cnblogs.com/xxhuan/p/6582114.html