当前位置: 首页 > 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() 只取整数部分。

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

 

 

 

 

 

相关文章:

JavaScript基础(九)

冒泡排序 用例子比较好理解: var arry[7,2,6,3,4,1,8]; //拿出第一位数7和后面依次比较&#xff0c;遇到大的8就换位&#xff0c;8再与后面依次比较&#xff0c;没有能和8换位的数&#xff0c;再从下一位2依次与下面的数比较。 console.log(排列之前&#xff1a;arry); for (…...

决策树最优属性选择

本文以西瓜数据集为例演示决策树使用信息增益选择最优划分属性的过程 西瓜数据集下载&#xff1a;传送门 首先计算根节点的信息熵&#xff1a; 数据集分为好瓜、坏瓜&#xff0c;所以|y|2根结点包含17个训练样例&#xff0c;其中好瓜共计8个样例&#xff0c;所占比例为8/17坏…...

NER 数据集格式转换

NER 数据集格式 格式一 某些地方的数据和标签拆成两个文件了 sentences.txt 如 何 解 决 足 球 界 长 期 存 在 的 诸 多 矛 盾 &#xff0c; 重 振 昔 日 津 门 足 球 的 雄 风 &#xff0c; 成 为 天 津 足 坛 上 下 内 外 到 处 议 论 的 话 题 。 该 县 一 手 抓 农 业…...

【LinuxC语言】utime函数

文章目录 前言函数原型参数`struct utimbuf`返回值示例代码总结前言 utime函数在C语言中用于更改文件的访问时间(access time, atime)和修改时间(modification time, mtime)。这是一个POSIX标准的函数,常用于更新文件的时间戳,而不必实际修改文件的内容。 函数原型 #in…...

Cannot invoke an object which is possibly ‘undefined‘

这是ts中的错误提示&#xff1a; Cannot invoke an object which is possibly undefined 报错场景&#xff1a; 定义interface接口的时候sayHi方法使用的是可选属性&#xff0c;可以有可以没有&#xff0c; 当在实际方法中调用sayHi方法的时候报错了&#xff0c; 问&#xff…...

C++ 计时器

文章目录 一、简介二、实现代码2.1 windows平台2.2 C标准库 三、实现效果 一、简介 有时候总是会用到一些计时的操作&#xff0c;这里也整理了一些代码&#xff0c;包括C标准库以及window自带的时间计算函数。 二、实现代码 2.1 windows平台 StopWatch.h #ifndef STOP_WATCH_H…...

notepad++ 批量转所有文件编码格式为UTF-8

1、安装notepad及PythonScript_3.0.18.0插件 建议两者都保持默认路径安装x64版本&#xff1a; 阿里云盘分享https://www.alipan.com/s/xVUDpY8v5QL安装好后如下图&#xff1a; 2、new Script&#xff0c;新建脚本&#xff0c;文件名为ConvertEncoding 3、自动打开脚本&#xff…...

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-16讲 EPIT定时器

前言&#xff1a; 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM&#xff08;MX6U&#xff09;裸机篇”视频的学习笔记&#xff0c;在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…...

【只会for循环? 来看下, Nodejs中典型的5种循环方式】

Nodejs中的&#xff0c;除了经典的for循环 , 其实还有几种好用的循环方式&#xff0c; 并有典型的使用场景。下面来一起看下&#x1f447;&#x1f3fb; 5种循环用法 For Loop&#xff1a;这是最常见的循环方式&#xff0c;适用于你知道循环次数的情况。 for (let i 0; i &…...

Java基础(三)- 多线程、网络通信、单元测试、反射、注解、动态代理

多线程基础 线程&#xff1a;一个程序内部的一条执行流程&#xff0c;只有一条执行流程就是单线程 java.lang.Thread代表线程 主线程退出&#xff0c;子线程存在&#xff0c;进程不会退出 可以使用jconsole查看 创建线程 有多个方法可以创建线程 继承Thread类 优点&#x…...

WordPress建站公司模板免费下载

WordPress建站公司 适合提供WordPress建站服务的公司或个体(个人)工作室使用的WordPress建站公司主题模板。 演示 https://www.jianzhanpress.com/?p545 https://www.wpicu.com/jianzhan/ 下载 链接: https://pan.baidu.com/s/11trlwUJq_lW81R_acq4ilA 提取码: r19i...

金融信贷风控基础知识

一、所谓风控(What && Why) 所谓风控&#xff0c;可以拆解从2个方面看&#xff0c;即 风险和控制 风险(what) 风险 这里狭隘的特指互联网产品中存在的风险点&#xff0c;例如 账户风险 垃圾注册账号账号被泄露盗用 交易支付风险 刷单&#xff1a;为提升卖家店铺人气…...

Web Server项目实战4-服务器编程基本框架和2种高效的事件处理模式

服务器编程基本框架 虽然服务器程序种类繁多&#xff0c;但其基本框架都一样&#xff0c;不同之处在于逻辑处理 模块功能I/O处理单元处理客户连接&#xff0c;读写网络数据逻辑单元业务进程或线程网络存储单元数据库、文件或缓存请求队列各单元之间的通信方式 I/O 处理单元是…...

。。。。。

...

RPC原理技术

RPC原理技术 背景介绍起源组件实现工作原理 背景 本文内容大多基于网上其他参考文章及资料整理后所得&#xff0c;并非原创&#xff0c;目的是为了需要时方便查看。 介绍 RPC&#xff0c;Remote Procedure Call&#xff0c;远程过程调用&#xff0c;允许像调用本地方法一样调…...

开源大模型与闭源大模型:技术哲学的较量

目录 前言一、 开源大模型的优势1. 社区支持与合作1.1 全球协作网络1.2 快速迭代与创新1.3 共享最佳实践 2. 透明性与可信赖性2.1 审计与验证2.2 减少偏见与错误2.3 安全性提升 3. 低成本与易访问性3.1 降低研发成本3.2 易于定制化3.3 教育资源丰富 4. 促进标准化5. 推动技术进…...

buuctf的RSA(二)

1.RSA 知道 flag.enc 和 pub.key&#xff0c;典型的加密、解密 将pub,key 改为pub.txt 打开后发现公钥 在RSA公私钥分解 Exponent、Modulus&#xff0c;Rsa公私钥指数、系数(模数)分解--查错网 进行解密 得到e65537 n8693448229604811919066606200349480058890565…...

idm软件是做什么的 IDM是啥软件 idm软件怎么下载 idm软件怎么下载

一、IDM是啥软件 IDM 是由美国 Tonec 公司开发的 Windows 软件&#xff0c;该软件最初于 2005 年发布。IDM全称Internet Download Manager&#xff0c;是一款Windows平台老牌而功能强大的下载加速器&#xff0c;专注于互联网数据下载。这款软件是一款不错的轻量级下载工具&…...

基于springboot+vue的学生考勤管理系统

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…...

Java——内部类

1.什么是内部类 在一个类的里面再定义一个类&#xff0c;新定义的这个类就是内部类 举例&#xff1a;在Outer类的里面定义一个Inter类 class Outer{class Inter{} } 在这里Outer叫外部类&#xff0c;Inter叫内部类 内部类的应用场景 定义一个汽车类&#xff1a; 属性&#xf…...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

&#x1f9e0; 智能合约中的数据是如何在区块链中保持一致的&#xff1f; 为什么所有区块链节点都能得出相同结果&#xff1f;合约调用这么复杂&#xff0c;状态真能保持一致吗&#xff1f;本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

【Python】 -- 趣味代码 - 小恐龙游戏

文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1)&#xff1a;从基础到实战的深度解析-CSDN博客&#xff0c;但实际面试中&#xff0c;企业更关注候选人对复杂场景的应对能力&#xff08;如多设备并发扫描、低功耗与高发现率的平衡&#xff09;和前沿技术的…...

MVC 数据库

MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...

Swagger和OpenApi的前世今生

Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章&#xff0c;二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑&#xff1a; &#x1f504; 一、起源与初创期&#xff1a;Swagger的诞生&#xff08;2010-2014&#xff09; 核心…...

大数据学习(132)-HIve数据分析

​​​​&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4…...

Python ROS2【机器人中间件框架】 简介

销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...

2025季度云服务器排行榜

在全球云服务器市场&#xff0c;各厂商的排名和地位并非一成不变&#xff0c;而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势&#xff0c;对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析&#xff1a; 一、全球“三巨头”…...

JavaScript 数据类型详解

JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型&#xff08;Primitive&#xff09; 和 对象类型&#xff08;Object&#xff09; 两大类&#xff0c;共 8 种&#xff08;ES11&#xff09;&#xff1a; 一、原始类型&#xff08;7种&#xff09; 1. undefined 定…...

MySQL:分区的基本使用

目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区&#xff08;Partitioning&#xff09;是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分&#xff08;分区&#xff09;可以独立存储、管理和优化&#xff0c;…...