js数组排序

155 阅读1分钟

前端答题(七) zgn 2022.2.19

  • 数组去重和排序是两个非常经典的题目,之前我们已经写过去重,今天来实现一个简单的数组排序
//首先我们需要有一个数组
const array = [2,1,5,3,8,4,9,5];
// 第一步 对数组进行从小到大排序
let array = [2, 1, 5, 3, 8, 4, 9, 5];

let x;
for (let i = 0; i < array.length; i++) {
    for (let a = 0; a < array.length; a++) {
        if (array[i] < array[a]) {
            x = array[i];
            array[i] = array[a];
            array[a] = x;
        }
    }
}
console.log(array); // [1, 2, 3, 4, 5, 5, 8, 9]
 // 第二步 封装到函数sort中
 let array = [2, 1, 5, 3, 8, 4, 9, 5];
 
 function sort(value) {
    let x;
    for (let i = 0; i < value.length; i++) {
        for (let a = 0; a < value.length; a++) {
            if (array[i] < value[a]) {
                x = value[i];
                value[i] = value[a];
                value[a] = x;
            }
        }
    }
    
    return console.log(value)
}
sort(array);

// 这个函数目前功能太过单一,让我们来扩展一下,使它可以实现根据参数不同 实现从小到大排序 或者是从大到小排序
let array = [2, 1, 5, 3, 8, 4, 9, 5];

function sort(value, way) {
    let x;
    let nexWay = way.toString();
    if (nexWay === 'a') {
        for (let i = 0; i < value.length; i++) {
            for (let a = 0; a < value.length; a++) {
                if (array[i] < value[a]) {
                    x = value[i];
                    value[i] = value[a];
                    value[a] = x;
                }
            }
        }
        return console.log(value);
    } else {
        if (nexWay === 'z') {
            for (let i = 0; i < value.length; i++) {
                for (let a = 0; a < value.length; a++) {
                    if (array[i] > value[a]) {
                        x = value[i];
                        value[i] = value[a];
                        value[a] = x;
                    }
                }
            }
            return console.log(value);

        } else {
            console.log('请输入正确的排序方式')
        }
    }

}
let a = 'a'// 从小到大
let z = 'z'// 从大到小
sort(array, a);