Как сравнить два массива в js?
Обновил ответ, старая реализация была с багом.
function diff(a1, a2) {
    return a1.filter(i=>a2.indexOf(i)<0)
    .concat(a2.filter(i=>a1.indexOf(i)<0))
}
function compare(a1, a2) {
    return a1.length == a2.length && a1.every((v,i)=>v === a2[i])
}
jsfiddle.net/Stalk/7h5ahq5k/2

upd: в ES7 (2016) появился метод includes
const diff = function(a1, a2) {
    return a1.filter(i=>!a2.includes(i))
    .concat(a2.filter(i=>!a1.includes(i)))
}https://jsfiddle.net/Stalk/7h5ahq5k/9/
Я только начинаю учить. Для меня более понятный такой формат кода. Может кому то поможет. Добавил сортировку от меньшего к большему и наоборот. 

var 
a1 = [1,2,3,99,88,77,89,-99,-199]
a2 = [1,2,3,8,89,9,-99,6,-77]

function sortMyArray(a,b){
 return   b - a;
}
function sortMyArrayR(a,b){
 return   a - b;
}

function comparison () {
   return a1.filter(i=>a2.indexOf(i)<0).concat(a2.filter(i=>a1.indexOf(i)<0))
}

write.innerHTML += "["+comparison(a1,a2).sort(sortMyArray)+"]";
arr.innerHTML +=  "["+ a1.sort(sortMyArray).toString()+"] \t["+a2.toString()+"]"
writeRev.innerHTML += "["+comparison(a1,a2).sort(sortMyArrayR)+"]";

<p id="arr"></p>
    <p id="write">
        compare:
    </p>
    <p id="writeRev">
        compareReverse:
    </p>