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.hqwc.cn/news/536239.html

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

相关文章

leetcode110.平衡二叉树

之前没有通过的样例 return语句只写了一个 return abs(l-r)<1缺少了 isBalanced(root->left)&&isBalanced(root->right);补上就好了 class Solution { public:bool isBalanced(TreeNode* root) {if(!root){return true;}int lgetHeight(root->left);i…

每日OJ题_牛客HJ37 统计每个月兔子的总数(IO型OJ)

目录 牛客HJ37 统计每个月兔子的总数 解析代码 牛客HJ37 统计每个月兔子的总数 统计每个月兔子的总数_牛客题霸_牛客网 解析代码 #include <iostream> #include <vector>using namespace std; int main() {int n 0;cin >> n;vector<int> arr(n 1…

fastjson2 简单使用

参考 https://alibaba.github.io/fastjson2/ https://alibaba.github.io/fastjson2/annotations_cn.html https://alibaba.github.io/fastjson2/features_cn 基本操作 json 字符串转为 jsonObject&#xff1a; String json "{\"name\":\"tom\",\…

【Python】python实现决策树算法和贝叶斯算法(附源代码)

使用一种你熟悉的程序设计语言&#xff0c;实现&#xff08;1&#xff09;贝叶斯算法和&#xff08;2&#xff09;决策树算法 目录 1、贝叶斯算法2、决策树算法3、两种算法比较 1、贝叶斯算法 import pandas as pd import numpy as np from sklearn.model_selection import t…

Apache Paimon系列之:认识Paimon

Apache Paimon系列之&#xff1a;认识Paimon 一、认识Paimon二、统一存储三、基本概念1.文件布局2.Snapshot3.清单文件4.数据文件5.分区6.一致性保证 一、认识Paimon Apache Paimon的架构&#xff1a; 如上架构所示&#xff1a; 读/写&#xff1a;Paimon 支持多种读/写数据和…

Mybatis 实体类类型参数传入sql语句

1.Mapper接口中抽象方法的声明&#xff0c;将实体信息传入到数据库表中。 int insertEmployee(Employee employee);2.SQL语句 <insert id"insertEmployee">insert into t_emp(emp_name,emp_salary) values(#{empName},#{empSalary}) </insert>3.对应关…

媒体单位专用小记者报名及各类活动报名系统介绍

媒体单位专用小记者报名及各类活动报名系统介绍 小记者活动鼓励孩子们关注生活和社会&#xff0c;丰富成长体验&#xff0c;开启心智&#xff0c;淬砺思想。这不仅有助于提高他们的理性思辨力&#xff0c;还能培养他们的社会责任感和公民意识。小记者活动为学生提供了一个全新…

C语言易错知识点:scanf函数

scanf在C语言学习中比较常用&#xff0c;但因为其涉及屏幕缓冲区导致有的时候会调入陷阱&#xff0c;下面分享一下常见的需要注意的事项&#xff1a; 1.输入末尾带有回车\n 当我们输入数据后&#xff0c;最后按下回车时&#xff0c;屏幕缓冲区的末尾都会含有这个字符 scanf的…

String类及其常用方法

文章目录 1.String类的特性与使用1.1 String类的特性1.2 String对象的创建方式1.3 String 的使用&#xff08;不同的拼接操作&#xff09; 2.String常用方法2.1 String的常用方法一2.2 String常用方法二2.3 String常用方法三 1.String类的特性与使用 1.1 String类的特性 Stri…

Linux常用操作命令

Linux常用操作命令 1.文件管理catfile 2.文档编辑3.文件传输4.磁盘管理5.磁盘维护6.网络通讯7.系统管理8.系统设置9.备份压缩10.设备管理 Linux 英文解释为 Linux is not Unix。 Linux内核最初只是由芬兰人李纳斯托瓦兹&#xff08;Linus Torvalds&#xff09;在赫尔辛基大学上…

高铁列车员信息宣传向媒体投稿有哪些方法?

作为一名高铁列车工作人员,我肩负着传递高铁精神、展示列车员风采的重要使命。每月,我都要完成单位对外信息宣传的考核任务,通过媒体投稿来发表列车员的信息宣传文章。在这条信息宣传之路上,我经历了从摸着石头过河到智慧投稿的蜕变,其中的心酸与轻松交织,成为了我职业生涯中难…

值得收藏的Python字符串操作大总结!

今天给大家总结一下字符串的所有操作&#xff0c;string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等。 去空格及特殊符号 s.strip().lstrip().rstrip(,) 复制字符串 #strcpy(sStr1,sStr2) sStr1 strcpy sStr2 sStr1 sStr1 strcpy2 print sStr2 连…