Рискну предположить
Number(Object().toString()); // = Number("[objectObject]") = NaN
Number(Array().toString()); // = Number("0") = 0
Number(Array(1).toString()); // = Number("1") = 1
Number(Array(1, 2).toString()); // = Number("1,2") = NaN
Кстати, parseInt([1, 2]) вернет-таки значение 1.