Проблема с условием в js

300
07 марта 2018, 09:33
function merge(left, right, cmp, dir) {
var result = [];
while (left.length > 0 && right.length > 0)
    if (compare(left[0], right[0], 4, dir)) {
    //if(left[0].length < right[0].length){
        result.push(left.shift());
    }
    else {
        result.push(right.shift());
    }
if (left.length) {
    return result.concat(left)
}
else {
    return result.concat(right)
}
}
function compare(first, second, param, dir) {
var first_cr, second_cr;
switch (param) {
    case "1":
        first_cr = (first.match(new RegExp("a", "ig")) || []).length;
        second_cr = (second.match(new RegExp("a", "ig")) || []).length;
        break;
    case "2":
        first_cr = (first.match(new RegExp("[,.!?;:()]", "ig")) || []).length;
        second_cr = (second.match(new RegExp("[,.!?;:()]", "ig")) || []).length;
        break;
    case "3":
        first_cr = first.split(" ").length;
        second_cr = second.split(" ").length;
        break;
    case "4":
        first_cr = first.length;
        second_cr = second.length;
        break;
    case "5":
        first_cr = first.split(" ")[0].length;
        second_cr = second.split(" ")[0].length;
        break;
}
if (dir * 1) {
    return first_cr > second_cr;
}
else {
    return first_cr < second_cr;
}
}

Сравниваю по одному и тому-же условию но разными способами и на выходе получаются совершенно разные результаты закомментированное условие работает нормально Второе сортирует но не полностью, у него какие-то проблемы с правой половиной массива

READ ALSO
Как получить JSON с помощью API key

Как получить JSON с помощью API key

Решил попрактиковаться в работе с JSON и решил в проекте использовать API OpenWeatherMapПри обращение к ссылке с JSON выбивает ошибку (из ошибки ясно,...

293
Работа с input и button

Работа с input и button

Я создал простенький калькулятор, когда ввожу два числа с клавиатуры в два разных , то при нажатии на деление, умножение, сложение и вычитание,...

306
Как по клику убрать/добавить атрибут &ldquo;muted&rdquo; в &lt;video&gt;

Как по клику убрать/добавить атрибут “muted” в <video>

Написал вот такой кодНе работает

347