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 [];
      if(leftArr[0] > rightArr[0]) {
        mergedArr = [rightArr[0], ...mergedArr]
      } else {
        mergedArr = [leftArr[0], ...mergedArr]
      }
  
      leftArr.shift();
      rightArr.shift();
      
      mergedArr = [...leftArr, ...rightArr];
    }
  
  return [0,1,3];
}


function split(arr) {
	const mid = Math.ceil(arr.length / 2);
  
  if(arr.length === 2) return arr;
  
 	return split(merge(arr.slice(0, mid), arr.slice(mid, arr.length)));
}

console.log(split(values));