Почему при сравнении двух одинаковых массивов выводит false?
Вы сравниваете ссылки на объекты массива, а они разные.
Сравните например:var a = "123"; 
var b = "123"; 
console.log(a == b);
var c = new String("123"); 
var d = new String("123"); 
console.log(c == d);
Вкратце - потому, что это - объекты, а они, в общем случае, никогда не равны.
Объекты сравнивают по-другому, например так:console.log(JSON.stringify(a1)==JSON.stringify(a2));
Или, например, переопределяют Array.prototype.equals