merge

recursive merge, so much better than the for loop version.

by jpsierens

JavaScript

// O(n)
// note that input arrays are presorted
const merge = (a, b) => {
	if (!a.length) return b;
  if (!b.length) return a;
  
  if (a[0] < b[0]) {
  	return [a[0], ...merge(a.slice(1, a.length), b)];
  }
  else {
  	return [b[0], ...merge(a, b.slice(1, b.length))];
  }
}

console.log(merge([1,3,5], [2,4,6])); // [1,2,3,4,5,6]