JSFiddle - React, Tailwind, and code Playground

by ronilan

HTML

// merge/sort array

JavaScript

// merge and sort
function mergeSortArrays(arrayA, arrayB) {

    var result,
        func = null;

    if (typeof arrayA[0] === "number") {
        func = function (a, b) {
            return a - b
        };
    }

    result = arrayA.concat(arrayB).sort(func);

    return result;

}

// assumes sorted. does not uae sort();
function mergeArrays(arrayA, arrayB) {

    var result = [],
        i = 0,
        j = 0,
        k = 0;

    while (k < arrayA.length + arrayB.length) {

        if (typeof arrayA[i] === "undefined") {
            result = result.concat(arrayB.slice(j, arrayB.length));
            break;
        } else if (typeof arrayB[j] === "undefined") {
            result = result.concat(arrayA.slice(i, arrayA.length));
            break;
        } else if (arrayA[i] <= arrayB[j]) {
            result.push(arrayA[i]);
            i++;
        } else {
            result.push(arrayB[j]);
            j++;
        }

        k++;
    }

    return result;
}

a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18];
b = [1, 2, 4, 5, 6, 9, 10, 11, 12, 13, 14];

console.log(mergeSortArrays(a, b));
console.log(mergeArrays(a, b));

a = [1, 2, 3];
b = [1, 2, 4, 5, 6, 9, 10, 11, 12, 13, 14];

console.log(mergeSortArrays(a, b));
console.log(mergeArrays(a, b));

a = ["a", "b", "c", "h", "i", "j"];
b = ["b", "d", "f", "h", "x", "y", "z"];

console.log(mergeSortArrays(a, b));
console.log(mergeArrays(a, b));


a = ["a", "b"];
b = ["b", "d", "f", "h", "x", "y", "z"];

console.log(mergeSortArrays(a, b));
console.log(mergeArrays(a, b));