1)
Сравнение массивов. Как отмечал
haaji, выражение
[]==[]
ложно. Всё дело в том, что сравниваются 2 совершенно разных массива (заданные первыми и вторыми квадратными скобками), а так как массивы являются объектами, то и проверяются они по ссылке, а значит, они в данном случае не будут равны. Если хотите сравнить 2 массива с простыми (нессылочными типами: числами, строками, true/false) значениями внутри, то можно преобразовывать массив в строку, с использованием метода join и потом сравнивать уже строки.
console.log([1,2,3].join(",")==[1,2,3].join(","));
Если содержатся ссылочные типы, то в любом случае нужно будет сравнивать поэлементно. Можно использовать JSON.stringify, но там есть свои особенности (например, порядок определения свойств).
2)
Сортировка массивов. Array.prototype.sort может принимать в качестве аргумента функцию, в которую будут переданы 2 аргумента — элементы массива, и данная функция должна вернуть -1, 0, 1 в зависимости от того, какой элемент считать б
ольшим, либо равными (0). После вызова sort массив, для которого она была вызвана, будет изменён. Если sort не приняла функцию-сортировщик, то элементы массива сравниваются как элементарные значения.
Обобщая эти 2 пункта:
var a = [2, 3, 1],
a1= [3, 2, 1];
console.log(a.sort().join(",")===a1.sort().join(","));