Они ложные, потому что вы сравниваете два разных экземпляра Array. Это будет верно только в том случае, если они действительно являются ссылками на тот же экземпляр.
var array1 = [1,2,3];
var array2 = array1;
array1 == array2 ; // true
Чтобы сравнить их содержание, нужно сравнить каждый элемент в отдельности. Примерно так, хотя это не выглядит глубже, чем один уровень.
var array1 = [1,2,3];
var array2 = [1,2,3];
function compareArrays(a1,a2) {
var len = a1.length;
if( len !== a2.length )
return false;
while( len-- ) {
if( a1[ len ] !== a2[ len ] ) {
return false;
}
}
return true;
}
compareArrays( array1, array2 ); // true