抽象又有点垃圾的JavaScript

常数的排序

        let x = 10;
        let y = 20;
        let z;
        if (x < y) {
            z = x;
            x = y;
            y = z;
        }
        console.log(x, y);//x = 20 ,y = 10

通过一个媒介来继承x的初始值,然后将y的值赋值给x,再把媒介z的值赋值给y,达到排序

一个可重复使用的排序程序

第一种

        function sort1(numb1,numb2){
            let z;
            if(numb1 < numb2){
                z = numb1;
                numb1 = numb2;
                numb2 = z; 
            }
           return `${numb1} ${numb2}`;
        }    
        console.log(sort1(10,20));

第二种

        function sort1(numb1,numb2){
            let z;
            if(numb1 < numb2){
                z = numb1;
                numb1 = numb2;
                numb2 = z; 
            }
           console.log(numb1,numb2);
        }    
        sort1(10,20);

同作用不同写法,这种会很常见,在第一个的基础上添上函数

引用(数组)类型的排序

固定值的交换

        const arr = [1, 3, 5, 7, 2, 4];
        let z;
        if(arr[3] > arr[4])
        {
            z = arr[3];
            arr[3] = arr[4];
            arr[4] = z;
        }
        console.log(arr);// 1,3,5,2,7,4

数组函数

        let arr = [1, 3, 5, 7, 2, 4];
        let z;
        function sortT1([...arr]) {
            for (let j = 0; j < arr.length; j++) {
                for (let i = 0; i <= arr.length; i++) {
                    if (arr[i] > arr[i + 1]) {
                        z = arr[i];
                        arr[i] = arr[i + 1];
                        arr[i + 1] = z;
                    }
                }
            }
            return(arr);
        }
        console.log(sortT1(arr));//(6) [1, 2, 3, 4, 5, 7]

函数不唯一,你可以用多个方法的配合来达到同上面效果一样的方法

在最新的方法中可以优化成这样,使用sort方法

         let arr = [1, 3, 5, 7, 2, 4];
         console.log(arr.sort(function(a,b){
            return a-b;
         }));

数组排序方法—语法:sort(函数(元素1,元素2)返回 a-b;)

运行逻辑,当数组进入sort方法的时候,把arr的数组展开,然后进入函数,当a - b 大于0时不变,

当a - b 小于0时,把值返回到sort方法,进行排序

为什么a-b会运行交换排序?

sort原理可以参考上面的内容,从数字到数组函数的这一过程

抽象又有点垃圾的JavaScript_第1张图片

上面的内容可以分为:简单-容易-复杂的三步走:

第一步:最简单的交换数值

第二步:随机交换函数

第三步:到数组的随机交换函数

核心:明确的要达到的目的——数组的排序函数

从四个要素来看上面的编程的逻辑想要的信息:需要数字,需要数组,需要变量

                                                                计算:计算他们的过程

                                                                控制流程:循环,判断

                                                                结果:程序的目的是否和目的一样

小结:

sort方法可以用来排列引用类型,引用类型只有一种吗?不有多种

当你不记得sort方法的时候,可以自己从简单的编程到复杂的编程,现成编一个sort方法

方法多种多样,选择合适的最重要,可用sort方法,也可以sorT1(上面使用的函数名字,自己编一个)

你可能感兴趣的:(抽象js,javascript,开发语言,ecmascript)