ECMAScript 5 の規格を見ると、比較演算子による配列の比較は、それぞれ toString()
した結果を比較したものになるようだ。
Chrome 41 で試したところ、確かにそのような挙動だった。
var x = [1];
var y = [2];
x.toString() < y.toString(); // true
x < y; // true
x.toString = function(){ return "b"; }
y.toString = function(){ return "a"; }
x.toString() < y.toString(); // false
x < y; // false
なので、数値を格納した配列を比較しても、数値を基準に比較した結果にはならない。
[2] < [12] // false
参考: