If an element is out of order, remove it from the array.

An example in everyone’s (least) favorite language:

const americanSort = (list, compare) => list.reduce((acc, cur) => { const lastElement = acc.length > 0 ? acc[acc.length - 1] : null; return lastElement ? compare(lastElement, cur) < 1 ? [...acc, cur] : acc : [cur]; }, []);

console.log(americanSort([5, 2, 6, 5, 20, 10, 40], (a, b) => a - b)) outputs Array(4) [ 5, 6, 20, 40 ]

  • Muad'DibberA
    link
    31 year ago

    I feel like the americanSort would be to remove all the numbers and replace them with the same number repeating forever.

    americanSort([55, 331, 26, 89]) -> [1, 1, 1, 1, 1, 1, 1, ...]