JS数组相关知识

获取数组的最大值/最小值:

let arrary = [2,5,4]
let max = arrary[0]
for(let i = 0;i<arrary.length;i++){if(arrary[i]>max){max = arrary[i]}
}console.log(max);//查询数组最小值let arr = [2,21,34,23,45]
let min = arr[0]
for(let i= 0;i<arr.length;i++){if(arr[i]<min){min = arr[i]}
}console.log(min);

首先定义个数组,在这里选择了索引值为0的第一个值为max(这里我们是假定了一个),然后用For循环来遍历数组,在遍历的每个元素中只要元素i比我们假定的max大,就交换位置。一直遍历一直交换,直到选出最大的赋值给max.最小值同理。

数组元素的增加:

arr.push()    将一个或多个元素放置数组的尾部,注意:它还会返回数组的长度

arr.unshift()  方法用于向数组的开头添加一个或多个元素,并返回新的数组长度。与 push() 不同,unshift() 会改变数组中已存在元素的位置,将原有的所有元素向后移动,以在数组的最前面为新添加的元素腾出空间。

arr.push()方法:

        let arr = [2,21,34,23,45]arr.push(33,44);console.log(arr)

arr.unshfit()方法:

        let arr = [2,21,34,23,45]arr.unshift(33,44);console.log(arr)

(重要知识)数组筛选:

        let arr = [2,21,34,23,45]let arry = []for(let i = 0;i<arr.length;i++){if(arr[i]>=20){arry.push(arr[i])}}console.log(arry)

删除的方法:

1.arr.pop()

2.arr.shift()

3.arr.splice()

在 JavaScript 中,arr.pop()arr.shift(), 和 arr.splice() 都是数组(Array)对象的方法,它们各自有不同的用途和行为。以下是这三个方法之间的主要区别:

1. arr.pop()

pop() 方法用于删除并返回数组的最后一个元素。如果数组为空,则返回 undefined

示例

 

javascript复制代码

let arr = [1, 2, 3, 4, 5];
let lastElement = arr.pop();
console.log(arr); // 输出: [1, 2, 3, 4]
console.log(lastElement); // 输出: 5

2. arr.shift()

shift() 方法用于删除并返回数组的第一个元素。如果数组为空,则返回 undefined

示例

 

javascript复制代码

let arr = [1, 2, 3, 4, 5];
let firstElement = arr.shift();
console.log(arr); // 输出: [2, 3, 4, 5]
console.log(firstElement); // 输出: 1

3. arr.splice()

splice() 方法可以在任意的位置给数组添加/删除任意个元素。这个方法非常强大,因为它允许你在一个操作中同时进行添加和删除操作。

基本语法

 

javascript复制代码

array.splice(index, howmany, item1, ....., itemX)
  • index(必需):整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
  • howmany(必需):要删除的项目数量。如果设置为 0,则不会删除项目。
  • item1, ..., itemX(可选):向数组添加的新项目。

示例

删除元素

 

javascript

let arr = [1, 2, 3, 4, 5];
arr.splice(1, 2); // 从索引1开始,删除2个元素
console.log(arr); // 输出: [1, 4, 5]

添加元素

javascript

let arr = [1, 2, 3, 4, 5];
arr.splice(2, 0, 'a', 'b'); // 在索引2的位置添加元素 'a' 和 'b'
console.log(arr); // 输出: [1, 2, 'a', 'b', 3, 4, 5]

同时删除和添加元素

javascript

let arr = [1, 2, 3, 4, 5];
arr.splice(1, 2, 'a', 'b'); // 从索引1开始,删除2个元素,然后添加 'a' 和 'b'
console.log(arr); // 输出: [1, 'a', 'b', 4, 5]

总结:

  • pop() 和 shift() 分别用于删除数组的最后一个和第一个元素,并返回被删除的元素。
  • splice() 则提供了更多的灵活性,允许你在数组的任意位置添加或删除任意数量的元素。

这三个方法都会改变原数组的内容。根据你的需求,你可以选择使用 pop()shift(), 还是 splice() 来操作数组。

冒泡排序是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。

以下是一个用 JavaScript 实现的冒泡排序的案例:

function bubbleSort(arr) {  let len = arr.length;  for (let i = 0; i < len - 1; i++) {  for (let j = 0; j < len - 1 - i; j++) {  if (arr[j] > arr[j + 1]) { // 相邻元素两两对比  let temp = arr[j + 1]; // 元素交换  arr[j + 1] = arr[j];  arr[j] = temp;  }  }  }  return arr;  
}  // 测试冒泡排序函数  
let arr = [3, 2, 4, 1, 5];  
console.log('排序前:', arr);  
bubbleSort(arr);  
console.log('排序后:', arr);

在这个例子中,bubbleSort 函数接受一个数组 arr 作为参数,然后通过两层循环进行排序。外层循环控制所有的遍历,内层循环负责每一轮的冒泡排序,即将相邻的元素进行比较并交换(如果需要)。

注意,这个冒泡排序的实现没有进行任何优化,每次都会遍历整个数组,即使最后几个元素已经排好序了。在实际应用中,你可能会想要实现一些优化策略,比如当某一轮遍历中没有进行任何交换时,就可以认为数组已经排好序了,可以提前结束排序。

在这里的len-1是因为数组检索索引值,举个例子:

[1,2,3,4,5]这是一个5个数据的数组,索引值是0,1,2,3,4索引值到4,减一避免了索引不到错误的问题。

数组-i-1,通过规律观察,5个数遍历一遍走4次,4个数的遍历的第二遍走3次。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/742717.shtml

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

相关文章

mybatis-编写mapper.xml SQL语句时无提示

你们好&#xff0c;我是金金金。 场景 可以看见sql颜色都是白色的&#xff0c;而且编写的时候没有提示&#xff0c;简直痛苦 排查 中途有设置过SQL方言等&#xff0c;都没有解决我的问题 解决 很简单&#xff0c;https 改成 http 就有提示了&#xff01;&#xff01;&#x…

【Java并发知识总结 | 第二篇】乐观锁和悲观锁详讲

文章目录 2.乐观锁和悲观锁详讲2.1悲观锁2.2乐观锁2.3如何实现乐观锁2.3.1版本号机制2.3.2CAS算法2.3.3CAS底层 2.4乐观锁存在的问题2.4.1ABA问题&#xff08;1&#xff09;问题描述&#xff08;2&#xff09;解决 2.4.2循环时间长、开销大2.4.3只能保证一个共享变量的原子操作…

rust学习(手动写一个线程池)

哈哈&#xff0c;主要是为了练习一下rust的语法&#xff0c;不喜勿喷。 一.Executor申明 struct AExecutor<T> {results:Arc<Mutex<HashMap<u32,T>>>, //1functions:Arc<Mutex<Vec<ATask<T>>>> //2 } 1.results&#xff1a…

使用python实现一个dicom影像解析入库程序demo

简介 DICOM&#xff08;Digital Imaging and Communications in Medicine&#xff09;是医学图像和相关信息的国际标准。它定义了医学影像的格式和通信协议&#xff0c;使得不同设备和系统之间可以交换和共享医学图像和相关数据&#xff0c;如CT扫描、MRI图像、超声波图像等。…

原来jmeter接口测试还可以这么做...

JMeter是一个Java应用程序&#xff0c;是基于开源的性能测试工具。它可以用来对Web应用程序或FTP服务器进行压力测试&#xff0c;以便确定它们在高负载下还能否正常运行。JMeter支持各种协议&#xff0c;如HTTP、HTTPS、FTP、SOAP、REST等。 本文将介绍JMeter的详细使用教程&a…

VB 数据质量诊断软件(分析数据的完整性,合理性,准确性)-139-(代码+程序说明)

转载地址http://www.3q2008.com/soft/search.asp?keyword139 前言: 为何口出狂言,作任何VB和ASP的系统, 这个就是很好的一个证明 :) 又有些狂了... 数据库操作谁都会,接触的多了也没什么难的,VB编程难在哪?算法上,这个是一个算法题的毕业设计 哈哈忙活了足足有一○小时, …

解决Git:Author identity unknown Please tell me who you are.

报错信息&#xff1a; 意思&#xff1a; 作者身份未知 ***请告诉我你是谁。 解决办法&#xff1a; git config --global user.name "你的名字"git config --global user.email "你的邮箱"

kangle一键安装脚本

Kangle一键脚本&#xff0c;是一款可以一键安装KangleEasypanelMySQLPHP集合的Linux脚本。 脚本本身集成&#xff1a;PHP5.38.2、MYSQL5.68.0&#xff0c;支持极速安装和编译安装2种模式&#xff0c;支持CDN专属安装模式。同时也对Easypanel面板进行了大量优化。 脚本特点 ◎…

python实现卡普均值最小回路算法

如果给定一个含有环的有向图&#xff0c;要在这个图中找出所有的环并计算这些环的路径长度&#xff0c;然后除以环的边数&#xff0c;所得到的结果也就是环的平均值&#xff0c;这里也就是如何计算这个环的最小均值问题。 首先可以确定的是&#xff0c;如果图中均值最小的环的…

会禁止直播带货吗?

关注卢松松&#xff0c;会经常给你分享一些我的经验和观点。 种种迹象表明&#xff1a;直播带货已经到了被抑制的阶段&#xff0c;提高线上购物成本&#xff0c;促进消费回归线下实体&#xff0c;好像是主流声音了。 (1)“稳定和扩大传统消费”早就写在了中央经济工作会议和政…

《汇编语言》- 读书笔记 - 第17章-外传之 DOSBox-X 调用 int 13 读写磁盘

《汇编语言》- 读书笔记 - 第17章-外传之 DOSBox-X 调用 int 13 读写磁盘 总结dosbox-x.conf 不完美读取成功写入成功参考资料 总结 DOSBox 中访问 int 13h 始终没反应。网上查了下有人说是没支持&#xff0c;建议使用 DOSBox-X 经过无数遍尝试后&#xff1a; 环境状态Win11…

网络计算机

TCP/IP四层模型 应用层&#xff1a;位于传输层之上&#xff0c;主要提供两个设备上的应用程序之间信息交换的服务&#xff0c;它定义了信息交换的格式&#xff0c;消息会交给下一层传输层来传递。我们把应用层交互的数据单元称为报文。应用层工作在操作系统的用户态&#xff0…

腾讯云轻量服务器地域选择方法整理,选择不能修改!

腾讯云轻量应用服务器地域如何选择&#xff1f;地域就近选择&#xff0c;北方选北京地域、南方选广州地域&#xff0c;华东地区选上海地域。广州上海北京地域有什么区别&#xff1f;哪个好&#xff1f;区别就是城市地理位置不同&#xff0c;其他的差不多&#xff0c;不区分好坏…

C++初阶:内存管理

目录 1. C/C中各种资源的内存分布1.1 C/C程序内存区域划分1.2 各资源的内存分布情况&#xff08;练习&#xff09; 2. C中的动态内存管理方式2.1 new/delete开辟内置类型空间2.2 new/delete开辟销毁自定义类型空间 3. operator new 与 operator delete函数4. new与delete的实现…

表结构 / 字段操作

一.增 alter table emp add wickname varchar(20); 二.改 1.仅仅改变数据类型&#xff08;字段类型&#xff09; alter table emp modify wickname varchar(30); 2.字段名 和 字段类型 都改变 alter table emp change wickname username varchar(20); 三.删 alter table emp …

ZigBee技术与实训教程(无线传感网技术第五天持续更新)

ZigBee具有广阔的应用前景。 家庭和楼宇网络。工业控制。公共场所。农业控制。医疗。商业。 1.ZigBee的协议框架 Zigbee栈是在IEEE 802.15.4标准基础上建立的&#xff0c;定义了MAC层和PHY&#xff08;数据链路层&#xff09;。ZigBee设备还包括IEEE 802.15.4(该标准定义了r…

多线程锁.

公平锁与非公平锁 公平锁是指多个线程按照申请锁的顺序来获取锁,这里类似排队买票,先来的人先买后来的人在队尾排着,这是公平的Lock lock new Reentrantlock(true);/true表示公平锁,先来先得非公平锁指多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请…

类和对象 (中)

文章目录 类的六个默认成员函数构造函数析构函数特性使用 总结构造函数和析构函数拷贝构造函数特性拷贝构造总结 赋值运算符的重载运算符重载赋值运算符重载总结拷贝构造函数和赋值运算符重载 关于operator<<重载日期类实现const 修饰的成员函数取地址重载以及const取地址…

css实现高度是宽度一半的效果

1、方法一&#xff1a;使用变量:root、var()、clac()实现&#xff1a; 1.1 效果如下&#xff1a; 2.2 代码如下&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title>&l…

伸手党必备之Python正则表达式常用函数

今天介绍一下Python中常用的正则表达式处理函数。Python的正则表达式主要有两种方法完成模式匹配&#xff1a;『搜索』和『匹配』 re.match re.match 尝试从字符串的开始全部或者部分匹配某个模式&#xff0c;如&#xff1a;下面的例子匹配第一个单词。 import re text &…