JavaScript基础(九)

news2025/1/13 13:26:32

冒泡排序

用例子比较好理解:

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.coloradmin.cn/o/1683353.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

html5 笔记01

01 表单类型和属性 input的type属性 单行文本框: typetext 电子邮箱 : typeemail 地址路径 : type url 定义用于输入数字的字段: typenumber 手机号码: typetel 搜索框 : typesearch 定义颜色选择器 : typecolor 滑块控件 : typerange 定义日期 :typedate 定义输入时间的控件…

为什么我用save保存更新,数据库不更新,反而新增一条

今天发现一个奇怪的问题&#xff1a; 为什么我用save保存更新的数据后&#xff0c;数据库不更新&#xff0c;但是增加了一条空数据&#xff0c;我的前台也把数据用json传上去了&#xff0c;也成功了&#xff0c;但是数据库没有更新相应行的数据&#xff0c;而是新增了一条数据&…

FPGA学习笔记之Nios II(一)简单介绍及新建工程及下载

系列文章目录 文章目录 系列文章目录前言QsysNios IIhello world 实例Platform DesignNios II程序设计 前言 利用Quartus中的Qsys工具&#xff0c;可以实现在FPGA里面跑嵌入式的功能 Qsys Altera 公司将主控制器、数字信号处理模块、存储器及其控制模块、各种接口协议等模块&…

机器学习圣经PRML作者Bishop推出重磅教材

图1 书籍《Pattern Recognition and Machine Learning》 只要学人工智能的人&#xff0c;必然学机器学习。 只要学机器学习的人&#xff0c;必然看PRML。 PRML为何物&#xff1f; PRML全名《Pattern Recognition and Machine Learning》&#xff0c;一部机器学习领域的内功…

【vue-3】动态属性绑定v-bind

1、文本动态绑定&#xff1a; <input type"text" v-bind:value"web.url"> 简写&#xff1a; <input type"text" :value"web.url"> 2、文字样式动态绑定 <b :class"{textColor:web.fontStatus}">vue学…

linuk shell脚本

1,创建变 只需要变量名变量 值 如果有空格则要用引号 等号两边不能有空格 变量名不能以数字开头 2.输出变量 echo $变量名 3&#xff0c;重复定义变量叠加 前两行没加$导致错误 4&#xff0c;变量的删除 unset 变量名 5&#xff0c;read 变量名 有-p 就会打印引号地内容…

微软文字转语音小工具(Text to speech)网页版

在线文字转语音工具&#xff1a;在线文本转语音 (text-to-speech.cn) 随着科技的迅猛发展&#xff0c;人工智能技术日益成熟&#xff0c;AI配音作为其中的一项重要应用&#xff0c;正在以惊人的速度改变着我们的生活。所谓AI配音&#xff0c;指的是利用人工智能技术模拟人类声音…

使用决策树对金融贷款数据进行分析

使用决策树对金融贷款数据进行分析 在本篇博客中&#xff0c;我们将通过使用 Python、Pandas 和多种机器学习技术&#xff0c;对一组贷款数据进行全面分析。通过详细的步骤展示&#xff0c;你将学会如何进行数据预处理、可视化分析以及构建预测模型。 第一步&#xff1a;导入…

2024-5-23 石群电路-14

2024-5-23&#xff0c;星期四&#xff0c;22:20&#xff0c;天气&#xff1a;晴&#xff0c;心情&#xff1a;晴。今天没有什么重要的事情发生&#xff0c;心情一如既往的平静&#xff0c;距离返校假期还有两天~~~。 今天观看了石群老师电路基础课程的第23/24个视频&#xff0…

蓝牙Classic加密算法设计和实现,SAFER+,E0,E1,E2,E3(python)

概述 之前用python给大家实现了所有LE相关加密工具算法。bobwenstudy/BluetoothCryptographicToolbox: LE SMP加密算法设计和实现(python) (github.com)&#xff0c;最近重温了下Classic加密&#xff0c;顺便将Classic所有加密算法给实现了一遍。 在蓝牙Classic Spec中&#…

IS-IS基本配置 IS-IS邻接关系

一.IS-IS基本配置 原理概述 和 OSPF 路由协议一样&#xff0c; IS-IS 也是一个应用非常广泛的 IGP 路由协议&#xff0c;很多 ISP 网络、特别是大型的ISP网络都部署了IS-IS网络协议。 RIP 、 OSPF 等许多 IGP 都是针对 IP ( Internet Protocol &#xff09;这个网络层协议而开…

深度学习之基于YoloV5人体姿态摔倒识别分析报警系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 随着人口老龄化的加剧和人们对健康安全的日益关注&#xff0c;摔倒事件在老年人、幼儿、体育运…

PMP项目管理资料

需要原件的私我&#xff01;&#xff01;&#xff01; 各种编程相关资料学习

Stable Diffusion【写实模型】:逼真,逼真,超级逼真的国产超写实摄影大模型万享XL

今天和大家分享的是一个国产万享系列中使用量最高的大模型:万享XL_超写实摄影&#xff0c;顾名思义&#xff0c;该大模型主要是面向写实摄影&#xff0c;一方面生成的图片人物皮肤纹理细节超级逼真&#xff0c;另一方面对于光影效果的处理也非常到位。对于万享XL超写实摄影大模…

Linux多线程系列2: 模拟封装简易语言级线程库,线程互斥和锁,线程同步和条件变量,线程其他知识点

Linux多线程系列2: 模拟封装简易语言级线程库,线程互斥和互斥锁,线程同步和条件变量,线程其他知识点 1.前言 一.模拟C11线程库自己封装简易语言级线程库1.实现框架2.迅速把构造等等函数写完3.start和work1.尝试一2.尝试二3.最终版本4.给出代码 二.模拟实现多线程(为编写线程池做…

互联网医院开发:引领智慧医疗新时代

随着科技的迅猛发展和互联网的普及&#xff0c;传统医疗模式正在迎来一场深刻的变革。互联网医院的崛起&#xff0c;打破了时间和空间的限制&#xff0c;为患者和医疗机构带来了更加便捷、高效、安全的医疗服务体验。本文将从技术角度深入探讨互联网医院的开发&#xff0c;包括…

Hotcoin Research | 市场洞察:2024年5月13日-5月19日

加密货币市场表现 目前&#xff0c;加密货币总市值为1.32万亿&#xff0c;BTC占比54.41%。 本周行情呈现震荡上行的态势&#xff0c;BTC在5月15日-16日&#xff0c;有一波大的拉升&#xff0c;周末为震荡行情。BTC现价为67125美元。 上涨的主要原因&#xff1a;美国4月CPI为3…

安防监控视频平台EasyNVR级联视频上云系统EasyNVS出现“Login error”报错的原因排查

EasyNVR安防视频云平台是旭帆科技TSINGSEE青犀旗下支持RTSP/Onvif协议接入的安防监控流媒体视频云平台。平台具备视频实时监控直播、云端录像、云存储、录像检索与回看、告警等视频能力&#xff0c;能对接入的视频流进行处理与多端分发&#xff0c;包括RTSP、RTMP、HTTP-FLV、W…

RNN-循环神经网络

目录 词嵌入层 RNN网络层 RNN 网络原理 这一节我们学习循环神经网络&#xff0c;RNN~~ 自然语言处理&#xff08;Nature language Processing, NLP&#xff09;研究的主要是通过计算机算法来理解自然语言。对于自然语言来说&#xff0c;处理的数据主要就是人类的语言&#…

安卓绕过限制直接使用Android/data无需授权,支持安卓14(部分)

大家都知道&#xff0c;安卓每次更新都会给权限划分的更细、收的更紧。   早在安卓11的时候还可以直接通过授权Android/data来实现操作其他软件的目录&#xff0c;没有之前安卓11授权的图了&#xff0c;反正都长一个样&#xff0c;就直接贴新图了。   后面到了安卓12~13的…