判断一个对象是不是数组的三种方法如下:
1、使用instanceof操作符
2、Array.isArray() (ES5新增的方法)
3、使用Object.prototype上的原生toString()方法判断。
使用方法:
Object.prototype.toString.call(value)
该方法不能检测非原生构造函数的函数名,因此定义的任何构造函数都将返回[object Object]。
.all?这是一个ruby方法,他的返回结果只有两个,true或者false,判断的是数组中每一个元素都是true的就返回true,只要有一个不是true就返回false,如[nil,22].all?返回的就是false。还有就是判断数组遍历运算过程中,每一个结果是不是true,如[1,2,3].all?{|w| w >1}这个的结果就是false。你的例子中,作为判断对象的是一个空数组,不执行后面的代码,也没有一个元素是false的,所以返回的是true,这是我的见解