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

JavaScript基础(九)

冒泡排序

用例子比较好理解:

var arry=[7,2,6,3,4,1,8];

    //拿出第一位数7和后面依次比较,遇到大的8就换位,8再与后面依次比较,没有能和8换位的数,再从下一位2依次与下面的数比较。

    console.log('排列之前:'+arry);

    for (var i=0; i<arry.length; i++){

        for (var j=i+1; j<arry.length; j++){

            if (arry[i]<arry[j]){

                //换位

                var b=arry[i];

                arry[i]=arry[j];

                arry[j]=b;

            }

        }

    }

    console.log('排列之后:'+arry);

2ce03b3978414287b0752e27b2c8990c.png

就这么简单,这就是冒泡排序。

对于排序我们也可以直接使用js封装好的sort()方法:

 //调用封装好的sort()方法:

    var arry=[7,2,6,3,4,1,8,5,9];

    //升序(直接数组名.sort()):

    arry.sort();

    console.log(arry);

4cec48c3d23e469d9bf7c2fadecee223.png

有升序就有降序:

//降序:

    arry.sort(function (a,b){

        return b-a;

    });

    console.log(arry);

fda9f467a94949529f3768faf1791b38.png

数字排序我们就用function,为啥呢,因为正序直接.sort()有时候不适用,不信?那我们再写写看看:

var arry=[1,2,3,5,6,10,11];

    arry.sort();

    console.log(arry);

c1e9d2eb61564734931465b0ac00a224.png

 10.11这俩哥们就上去了。

因为我们用sort简单转,它转的是什么,是字符编码的顺序进行排序的,看ASCII 表,数字给你转成一个十进制,但它又会去底层进行二进制的转换,就像2>10>11,

bcf2934fc7b8446f9c5caf25eefa44f1.png

知道就行,直接用function就不会出现这种情况,倒序return的是b-a,正序换成a-b就行了。

 

    //字符串也可以排序,如果是字符串排序没必要用function.

    var arry=['c','a','b','d','f','e'];

    arry.sort();

    console.log(arry);

f273c74a6eae437686d266584fcf6f2b.png

 什么是对象/对象的属性以及方法

万物皆对象,不管是变量还是乱七八糟的值都可以当做对象,数组也是对象。比如:

 var arry=[1,2,3,5,6,10,11];

    console.log(typeof arry);

typeof可以查看属性

cfaf150f7cc841f89d75090849f2824c.png 8977bd1e747b47989adb5339a102f04b.png

object啥意思不用多说了吧。

对象可以有两部分:

①属性://死的东西。

②方法://活的东西。

什么活的死的?比如一个桌子,有长宽高这几个属性,每个属性可以有不同的值,长宽高是死的吧,还不明白?听听啥是活的就明白了,就是你这个桌子可以干什么,可以做餐桌,可以做会议桌…

再举个例子,冰箱这个对象,有属性:冷藏,冷冻…有方法:可以冷藏水果,可以冷冻肉类…

明白了吧,它能干什么,我们就可以给它写一套方法,后面还有封装,我们把这个方法封装好,用的时候直接调用就可以了,就像我们上面用的typeof,它为什么能看出类型,本质上就是人家提前写好的方法,封装好,我们直接拿来用了,OK,明白了。

Arry对象

1.Array(数组)对象,

//相当于声明了一个Array对象

   var arr =new Array(2,3,4,5);

   console.log(arr);

8d6d538cda4243779d7bddb2f7abc415.png

 //像我们前面说的,数组都有长度,数组名.length,指定它有多长,它就只能放多少

比如我们:  arr.length =3;

4663159d87fe4ee4a7fc1edb90ff0087.png

它就只能放三组,我们后面规定的它放不进去

我们前面说了对象有方法,那Array是对象,肯定也有方法,我们主要介绍这几个方法(还有很多直接去查官方的文档看):

那怎么调用方法呢,对象名.方法就好了。

join()方法

//通过一个分隔符,把数组内所有元素拼成一个字符串。

var arr=[1,2,3,5,6];

arr =arr.join('-');

console.log(arr);

//然后就变成了一个string类型

99e59b442dbd46a2826c9256bc31a872.png

arr.join('')中用什么就用什么分隔开,也可以直接为空。

//拼接后得到的是一个新内容,并不会修改原始数组。

push()方法

向数组中加内容,修改原始数组,没什么好说的。

sort()方法

排序方法,前面说过了,也是修改了原始数组。

concat()方法

拼接数组

//a.concat(b);a来合并b

var a=[1,2,3];

var b=[100,110,120];

c = a.concat(b);

console.log(c);

如果要打印看结果,别忘了用个变量接收。

7ba8929727f848bcb13d61834ea6794f.png

谁合并谁,谁就放在前面。

那既然合并了直接log a不就好了,好,来看看console.log(a);

30f93eb3080544c58a17898e6d38ce7f.png

 说明他合并后并没有修改原始数组。

splice()方法

//splice(a,b);从下标a处开始删除,往后删除b个

var a=[100,200,300,400,500,600];

a.splice(2,3);

console.log(a);

cb6331363794449f81a4f2b1e0d93abd.png

直接log a出结果,说明改变了原始数组。

还有一个比较好玩的随机数random(),随便用个变量接收:

var a= Math.random();

console.log(a);

 bbc4bbd6f48c47378bdf894e71fcd2b4.png

它是随机生成一个0-1之间的随机数。

可以在输出时*10,使用round()、ceil()、floor()和parseInt()取整,作为一些限制条件输出,之前好像说过,在复习下:

其中round()是四舍五入取整,ceil() 是向上取整,floor() 是向下取整,parseInt() 只取整数部分。

还可以使用别的方法作为限制条件,写一些好玩的东西,尽情发挥想象。

 

 

 

 

 

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

相关文章:

  • 决策树最优属性选择
  • NER 数据集格式转换
  • 【LinuxC语言】utime函数
  • Cannot invoke an object which is possibly ‘undefined‘
  • C++ 计时器
  • notepad++ 批量转所有文件编码格式为UTF-8
  • 正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-16讲 EPIT定时器
  • 【只会for循环? 来看下, Nodejs中典型的5种循环方式】
  • Java基础(三)- 多线程、网络通信、单元测试、反射、注解、动态代理
  • WordPress建站公司模板免费下载
  • 金融信贷风控基础知识
  • Web Server项目实战4-服务器编程基本框架和2种高效的事件处理模式
  • 。。。。。
  • RPC原理技术
  • 开源大模型与闭源大模型:技术哲学的较量
  • buuctf的RSA(二)
  • idm软件是做什么的 IDM是啥软件 idm软件怎么下载 idm软件怎么下载
  • 基于springboot+vue的学生考勤管理系统
  • Java——内部类
  • 不用从头训练,通过知识融合创建强大的统一模型
  • 僵尸进程、孤儿进程、守护进程
  • 【工程化】CJS 和 ESM
  • 记录:mac pro 16-inch,2019安装ubuntu双系统
  • WordPress主题 7B2 PRO 5.4.2 免授权开心版源码
  • GPT‑4o普通账户也可以免费用
  • 复制即用!纯htmlcss写的炫酷input输入框
  • 前端 CSS 经典:弧形边框选项卡
  • 前端面试题日常练-day21 【面试题】
  • 几起 Linux 问题解决分享
  • LeetCode题解:9. 回文数,翻转一半数字,JavaScript,详细注释