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! ✌️