const arrs= [8, 4, 2, 5, 20, 6, 4, 11, 8, 19]

    1. /**
    2. *
    3. * @param {*} preItem 前一个元素值
    4. * @param {*} nextItem 后一个元素值
    5. * @returns
    6. */
    7. function compare (preItem, nextItem) {
    8. return preItem > nextItem;
    9. }
    10. /**
    11. *
    12. * @param {*} arr 当前数组
    13. * @param {*} pre 前一个索引值
    14. * @param {*} next 下一个索引值
    15. */
    16. function isChange (arr, pre, next) {
    17. const temp = arr[pre];
    18. arr[pre] = arr[next];
    19. arr[next] = temp;
    20. }
    21. /**
    22. *
    23. * @param {*} arr 待排序数组
    24. */
    25. function sort (arr) {
    26. for (let i = 0; i < arr.length; i++) {
    27. for (let j = 0; j < arr.length - 1 - i; j++) {
    28. if (compare(arr[j], arr[j + 1])) {
    29. isChange(arr, j, j + 1);
    30. }
    31. }
    32. }
    33. }
    34. sort(arrs);
    35. console.log(arrs);