JSFiddle - React, Tailwind, and code Playground
by Diana Lemen
JavaScript
const values = [1,2,3,4,3,2,4,3,5,6,7,4,5,6,7,8,9,0,10];
function merge(leftArr, rightArr) {
let mergedArr = [];
if(!leftArr.length && !rightArr.length) return [];
while(leftArr.length && rightArr.length) {
if(leftArr[0] > rightArr[0]) {
mergedArr = [rightArr[0], ...mergedArr]
} else {
mergedArr = [leftArr[0], ...mergedArr]
}
leftArr.shift();
rightArr.shift();
mergedArr = [...mergedArr, ...leftArr, rig]
}
return mergedArr;
}
function split(arr) {
const mid = Math.ceil(arr.length / 2);
if(arr.length === 0) return arr;
return split(
merge(arr.slice(0, mid), arr.slice(mid, arr.length))
);
}
console.log(split(values));