Array.prototype.reduce()
to iterate over all the elements in the given array.length
of the accumulator is 0
, add the current element to it.Array.prototype.some()
to iterate over the results in the accumulator until the correct position is found.Array.prototype.splice()
to insert the current element into the accumulator.const insertionSort = arr => arr.reduce((acc, x) => { if (!acc.length) return [x]; acc.some((y, j) => { if (x <= y) { acc.splice(j, 0, x); return true; } if (x > y && j === acc.length - 1) { acc.splice(j + 1, 0, x); return true; } return false; }); return acc; }, []);
insertionSort([6, 3, 4, 1]); // [1, 3, 4, 6]
Subscribe to get resources directly to your inbox. You won't receive any spam! ✌️