当前位置: 首页 > news >正文

抽象又有点垃圾的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原理可以参考上面的内容,从数字到数组函数的这一过程

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

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

第二步:随机交换函数

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

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

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

                                                                计算:计算他们的过程

                                                                控制流程:循环,判断

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

小结:

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

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

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

http://www.lryc.cn/news/143085.html

相关文章:

  • 【Spring Boot】使用Spring Boot进行transformer的部署与开发
  • Qt应用开发(基础篇)——富文本浏览器 QTextBrowser
  • JDBC:更新数据库
  • 如何自定义iview树形下拉内的内容
  • 技术的巅峰演进:深入解析算力网络的多层次技术设计
  • 图像特征描述和人脸识别
  • 浅谈Lua协程和函数的尾调用
  • 【VS Code插件开发】状态栏(五)
  • 睿趣科技:抖音开网店要怎么找货源
  • 表和Json的相互操作
  • 每日后端面试5题 第八天
  • mysql数据库和数据表
  • MySQL执行更新的流程
  • 要获取 PHP 中当前时间的前一天、本周、本月、本季度和本年,可以使用 PHP 的内置日期和时间函数。
  • java八股文面试[java基础]——如何实现不可变的类
  • juc基础(四)
  • C++智能指针weak_ptr的作用
  • lintcode 344 · 歌曲时间【背包问题,动态规划】
  • Qt应用开发(基础篇)——对话框窗口 QDialog
  • Linux系统:CentOS 7 CA证书服务器部署
  • C++图形界面编程-MFC
  • 知识扩展贴 圆越大,其圆接触的无知面就越多
  • 怎么把pdf转换成jpg格式?
  • Android SDK 上手指南||第六章 用户交互
  • Vue3+Pinia+Koa+Three.js 全栈电商项目总结复盘
  • 【大模型AIGC系列课程 2-3】动手为ChatGPT打造第二大脑
  • 【ARM AMBA AXI 入门 10 - AXI 总线 DATA信号与 STRB 信号之间的关系 】
  • 软引用的使用场景-链路日志
  • 【java】【项目实战】[外卖七]手机短信开发
  • Web 开发 Django 模板