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.mzph.cn/pingmian/13559.shtml

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

相关文章

AWS迁移与传输之SCT

AWS Schema Conversion Tool&#xff08;AWS SCT&#xff09;是一款用于数据库迁移的工具&#xff0c;旨在帮助用户将现有的数据库模式&#xff08;包括表、视图、存储过程等&#xff09;从一个数据库引擎转换到另一个数据库引擎。 AWS提供两种模式转换解决方案&#xff0c;使…

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

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

Web测试面试题(二)

一&#xff1a;简述HTTP协议的状态码包含哪些&#xff1f; 2XX&#xff0c;表示成功 3XX&#xff0c;表示重定向 4XX&#xff0c;表示客户端错误 5XX&#xff0c;表示服务器错误 二&#xff1a;HTTP和HTTPS的区别&#xff1f; 《1》安全性上的区别&#xff1a; HTTPS&#x…

AWS 信息资料

EKS 组件信息&#xff1a;Amazon EKS 附加组件 - Amazon EKS&#xff0c;主要用于程序管理插件。 AWS 区域和可用区信息&#xff1a;全球基础设施区域和可用区 如何解决创建 Amazon S3 桶时出现的错误:如何解决创建 Amazon S3 桶时出现的错误 创建 AWS EC2 实例时 userdata使…

LeetCode题解:9. 回文数,翻转一半数字,JavaScript,详细注释

原题链接 9. 回文数 解题思路 翻转数字 利用循环&#xff0c;每次将x右移一位将移出的数字存储到reversed的个位中每次存储前&#xff0c;需要将reversed左移一位 判断结果 当原x的长度为偶数&#xff0c;翻转后的结果相等当原x的长度为奇数&#xff0c;reversed一定比翻转后…

自养号测评是什么?亚马逊产品评价的全新策略

1、什么是亚马逊测评&#xff1a; 亚马逊测评&#xff0c;简而言之&#xff0c;是基于亚马逊购物平台的一种特定活动。他的核心在于模拟国外消费者的购物行为&#xff0c;并在完成购买后&#xff0c;对所获得的产品进行真实、中肯的评价。这种测评不仅为消费者提供了购物参考&…

微软开发者大会,Copilot Agents发布,掀起新一轮生产力革命!

把AI融入生产力工具的未来会是什么样&#xff1f;微软今天给出了蓝图。 今天凌晨&#xff0c;微软召开了Microsoft Build 2024 开发者大会&#xff0c;同前两天的Google I/O开发者大会一样&#xff0c;本次大会的核心词还是“AI”&#xff0c;其中最主要的内容是最新的Copilot…

成都爱尔胡建斌院长提醒近视超过600度,记得每年检查眼底!

高度近视是指近视度数在600度及以上的一种屈光不正的状态。 近视的眼睛必定是变形的。在正常情况下&#xff0c;人的眼球类似球体&#xff0c;但随着近视加深&#xff0c;眼轴变长&#xff0c;眼球体积逐渐增大&#xff0c;整个眼球从圆球型向椭圆球形发展&#xff0c;而眼球壁…

Linux:top命令的每一列的具体含义

Linux&#xff1a;top命令的每一列的具体含义 文章目录 Linux&#xff1a;top命令的每一列的具体含义图片显示top命令的概念语法显示字段的含义顶部字段第二行第三行第四行第五行每列字段的含义 图片显示 top命令的概念 top命令上一个常用的Linux命令行工具&#xff0c;用于实…

php部分特性漏洞学习

php部分函数漏洞学习 简单总结一些我遇到的ctf中的php的一些函数或特性的漏洞&#xff0c;我刷题还是太少了&#xff0c;所以很多例子来自ctfshow&#xff0c;以后遇到相关赛题再更新 1.MD5和其他hash 弱类型比较 php中&#xff0c;有两中判断相等的符号&#xff0c;和&…

位运算符

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 位运算符是把数字看作二进制数来进行计算的&#xff0c;因此&#xff0c;需要先将要执行运算的数据转换为二进制&#xff0c;然后才能进行执行运算。…

确保数据可视化的准确性:后校验的重要性和方法

前言 在数据可视化项目中&#xff0c;选择合适的图表类型并确定数据字段是首要步骤&#xff0c;但这些步骤本身并不能保证最终的图表能够有效地传达正确的信息。数据的质量和特性可能会影响图表的解释性和准确性。因此&#xff0c;进行后校验以确保数据的适用性和一致性对于避…

[建堆堆排序的时间复杂度推导]向上建堆向下建堆堆排序的时间复杂度分析推导

&#x1f496;&#x1f496;&#x1f496;欢迎来到我的博客&#xff0c;我是anmory&#x1f496;&#x1f496;&#x1f496; 又和大家见面了 欢迎来到动画详解数据结构系列 作为一个程序员你不能不掌握的知识 先来自我推荐一波 个人网站欢迎访问以及捐款 推荐阅读 如何低成本搭…

ai电销机器人智能的原理和优势,如何帮助企业来提高销售效率的?

随着人工智能技术的发展&#xff0c;越来越多的企业开始选择使用ai智能外呼系统替代传统的人工拨打电话模式&#xff01;通过精准语音平台群呼潜在客户群体&#xff0c;精准筛选出意向客户并进行分类&#xff0c;实现无缝对接&#xff0c;节省80%人力成本&#xff0c;电销机器人…

hypermesh二次开发tcl脚本

hypermesh二次开发tcl脚本 1、tcl读csv文件,得到list,再转成二维数组2、tcl写csv文件3、hypermesh tcl根据读入的节点坐标建节点, 再显示节点号4、hypermesh tcl根据节点号建节点set5、hypermesh tcl根据节点set读取节点号&#xff0c;再根据节点号读取节点坐标&#xff0c;再将…

为什么别人写的SCI文章,容易接收?有技巧?

这篇文章是写给想发期刊文章的&#xff0c;但是导师没有时间去指导的人看的&#xff0c;无论是SCI还是EI、核心这类的,都适用。 想发文章&#xff0c;首先你得有文章&#xff01;以下从写论文的新手内心历程来解答。 paper怎么来呢&#xff1f;那肯定是找创新点&#xff0c;找…

Vue 父组件向子组件传递数据

1、在子组件中&#xff0c;你需要声明你期望从父组件接收哪些props。这可以通过props选项完成&#xff0c;可以是一个数组或对象形式&#xff1a; export default {props: [message]&#xff0c;props:{message:String }props: {message: String, // 类型检查count: {type: Nu…

vue3第三十三节(TS 之 computed watch)

vue3 组合是API 中我们经常使用的 监听函数 computed 和 watch使用 1、computed 里面添加类型 <script setup lang"ts"> import { ref, computed } from vue const age ref(18) // 定义一个Person 接口 interface Person {age: numbername: string } const…

深度学习之Pytorch框架垃圾分类智能识别系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 随着城市化进程的加快和人们环保意识的提高&#xff0c;垃圾分类已成为城市管理的重要一环。然而&am…

成本管控:如何利用 SOLIDWORKS Costing 高效估算成本?

现在全球材料短缺、生活成本上升以及能源价格上涨而导致的成本上升问题突显。 生产产品需要的成本以及如何让产品的成本下降就成为很多的企业越来越关注的问题。 SOLIDWORKS Costing是集成到 SOLIDWORKS Professional 和 Premium 中的一款允许用户和制造商估算产品生产成本的工…