javaScript:数组方法(增删/提取类/截取/操作方法等)

news2024/11/19 3:23:29

目录

一.数组的增删方法

1.push()数组末尾添加元素

解释

代码 

运行截图 

 2.unshift()向数组的头部添加数组

解释

代码 

运行截图 

 3.pop()数组的尾部删除一个元素

解释

代码 

运行截图 

 4.shift()数组的头部删除一个元素

解释

代码 

运行截图 

5. splice()任意位置指定删除

解释

代码 

运行截图 

 二.数组的提取类

1. indexOf()指定查找索引

解释

    特点:

代码 

运行截图 

 2.lastIndexOf()向前查找

解释

代码 

 运行截图

3.案例:查找数组1元素的索引存储到数组2中 

代码

运行截图 

4.数组去重(重点)

 代码

运行截图

 三.数组的截取 

 1.slice()

解释

    特点:

代码 

运行截图

四.数组的操作方法 

1.concat()数组合并

解释

代码 

运行截图

2.   join()数组转化为字符串

 解释

 代码

运行截图

3.split()把字符串切割成数组 

4.reverse()翻转数组 


一.数组的增删方法

1.push()数组末尾添加元素

解释

push()

    参数是一个或者任意多个

    向数组末尾添加元素

    返回值是 新数组的长度

代码 

let arr1 = ['韩愈','柳宗元','王安石','苏轼']
   let arr2=arr1.push('苏辙','苏洵')
   console.log(arr1);
   console.log(arr2);  //6
   arr1.push('欧阳修','曾巩')
   console.log(arr1);

运行截图 

 2.unshift()向数组的头部添加数组

解释

向数组的头部添加数组

   unshift()

   参数1个 或者任意多个

   向数组头部添加元素

   返回值是 新的数组长度,ie6 7下面,没有返回值

代码 

 let arr3 = ['混蛋','傻蛋']
  arr3.unshift('笨蛋','蠢蛋')
  console.log(arr3);

运行截图 

 

 3.pop()数组的尾部删除一个元素

解释

 arr4.pop()

   从数组的尾部删除一个元素,每次只删除一个

   没有参数

   返回值是被删除的元素

代码 

 let arr4 = ['混蛋','傻蛋','笨蛋','蠢蛋']
  console.log(arr4);
  arr4.pop()
  console.log(arr4);
  let str = arr4.pop()  //pop()方法的返回值是 删除的那个元素
  console.log(arr4 , str)

运行截图 

 

 4.shift()数组的头部删除一个元素

解释

shift()

从数组的头部删除一个元素,每次只删除一个

没有参数

返回值是被删除的元素

代码 

 let arr4 = ['混蛋','傻蛋','笨蛋','蠢蛋']
  console.log(arr4);
  arr4.pop()
  console.log(arr4);
  let str = arr4.pop()  //pop()方法的返回值是 删除的那个元素
  console.log(arr4 , str)

运行截图 

5. splice()任意位置指定删除

解释

 .splice()

   从数组的任意位置开始,对指定长度的内容进行删除,替换工作

   可以插入任意数据类型的元素

   参数1:表现删除或者替换的起始位置

   产生。设置操作数据的长度,包含起始位置

   参数3:替换的新元素,也可以不写该参数

   参数2如果不写的话,则表示从1开始,一直到数组的最后,全部删除

   返回值是删除的元素所组成的

代码 

 arr6.splice(1,2,'鹅')
   console.log(arr6)
   let arr7 =arr6.splice(2)
   console.log(arr6)
  console.log('返回值',arr7)

运行截图 

 

 二.数组的提取类

1. indexOf()指定查找索引

解释

 indexOf()方法

    返回值是 指定内容在数组中的下标

    参数有两个

    参数1:指定的元素内容

    参数2:指定开始查找的位置,如果没有第二个参数,默认为0

    特点:

    1.从指定的位置开始查找

    2.找不到返回-1

    3.第二个参数不能为负数

代码 

let arr1 = ['马','牛','羊','坤','狗','猪']
let n1 = arr1.indexOf('坤')
   console.log(n1)

   let n2 = arr1.indexOf('马')
   console.log(n2)

   let n3 = arr1.indexOf('鸡')
   console.log(n3)

   let n4 = arr1.indexOf('马',3)
   console.log(n4)
    
    let arr2 = [1,2,3,1,3,4,5,3]
    let n5 = arr2.indexOf(3,3)

    console.log(n5);

运行截图 

 

 2.lastIndexOf()向前查找

解释

 lastIndexOf()

//      用法和indexOf()一样,只不过是从指定位置向前查找

代码 

    let arr5 = ['马','牛','羊','坤','狗','猪','羊']
    let n6 = arr5.indexOf('羊')
    console.log(n6);

    let n7 = arr5.lastIndexOf('羊')
    console.log(n7);

    if (n6==n7) {
        console.log('只有一只羊')
    }else{
        console.log('不仅仅只有一只羊');
    }

 运行截图

3.案例:查找数组1元素的索引存储到数组2中 

代码

let arr2 = [1,2,3,1,3,4,5,3]
    //在循环外部建一个空数组
    let arr3Index = []
    for (let i = 0; arr2.indexOf(3,i)!=-1;) {
        let n = arr2.indexOf(3,i)
        console.log(n);
        arr3Index.push(n)
        i = n+1  
    }
    console.log(arr3Index);

运行截图 

4.数组去重(重点)

 代码

 // 数组去重( 数组去掉重复项 )
    let arr3 = [1,2,3,4,4,4,3,2,1]
    let arr4 = []
    for (let i = 0; i < arr3.length; i++) {
        //如果arr4中不存在当前 循环的元素
        if (arr4.indexOf(arr3[i])==-1) {
            //把不存在的元素添加到arr4中
            arr4.push(arr3[i])
        }
}
    console.log(arr4);

运行截图

 三.数组的截取 

 1.slice()

解释

 数组的截取

    slice()

    参数1:开始截取的下标位置

    参数2:结束截取的下标位置

    截取的结果包含开始位置,不包含结束位置

    如果参数为负整数,则表示从后面开始往前计算,从-1开始计算

    特点:

    1.截取的时候,必须保证开始的位置在结束位置之前,否则截取为空数组

    2.参数必须是正整数,负整数或者0,其他非法字符都会被解析为0

    3.如果不写结束位置,则直接截取到最后

    4.如果没有参数,则会把整个数组截取,可以理解为复制数组。

代码 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>数组的截取</title>
</head>
<body>
    
</body>
</html>
<script>
    /*
    数组的截取
    slice()
    参数1:开始截取的下标位置
    参数2:结束截取的下标位置
    截取的结果包含开始位置,不包含结束位置

    如果参数为负整数,则表示从后面开始往前计算,从-1开始计算

    特点:
    1.截取的时候,必须保证开始的位置在结束位置之前,否则截取为空数组
    2.参数必须是正整数,负整数或者0,其他非法字符都会被解析为0
    3.如果不写结束位置,则直接截取到最后
    4.如果没有参数,则会把整个数组截取,可以理解为复制数组。

    */
    let arr1 = [1,2,3,false,3>4,'葫芦娃','黑猫警长']

    let arr2 = arr1.slice(2,5)
    console.log(arr1);
    console.log(arr2);

    let arr3 = arr1.slice(-4,-2)
    console.log(arr3);

    //如果不写结束位置,则直接截取到最后
    let arr4 = ['葫芦娃','黑猫警长','虹猫蓝兔七侠转','猪猪侠','汪汪队']
    let arr5 = arr4.slice(2)
    console.log(arr5);

    //没有参数,复制一个数组
    let arr6 = arr4.slice()
    console.log(arr6);
    arr6[4] = '灌篮高手'
    console.log('灌篮高手',arr4);

    // arr7改动了arr4也会动
    let arr7 = arr4 
    arr7[4]='花园宝宝'
    console.log(arr7);
    console.log(arr4);
</script>

运行截图

四.数组的操作方法 

1.concat()数组合并

解释

 数组合并

    concat()

    参数是要合并的数组,可以是多个,使用逗号隔开

    返回值是一个合并后的数组

代码 

 let arr1 = ['妇好','花木兰']
   let arr2 = ['貂蝉','安其拉']
   let arr3 = ['钟无艳','姬小满']
   //合并数组
   let arr4 = arr1.concat(arr2,arr3)
   console.log(arr4);
    //也可以合并字符串
   let arr5 = arr4.concat(['伽罗'])
   console.log(arr5);

运行截图

2.   join()数组转化为字符串

 解释

数组转化为字符串

join()

参数只有一个,设置拼接的字符,默认是英文逗号,也可以设置其他符号

 代码

数组转化为字符串
   join()
   参数只有一个,设置拼接的字符,默认是英文逗号,也可以设置其他符号
   */
    let str1=arr5.join('$') //使用$把数组元素拼接成一个字符串
    console.log(str1)

运行截图

3.split()把字符串切割成数组 

  //把字符串切割成数组,参数是切割符  (字符串方法)
    //妇好$花木兰$貂蝉$安其拉$钟无艳$姬小满$伽罗
    let arr6 = str1.split('钟无艳')
    console.log(arr6);

4.reverse()翻转数组 

  let arr7 = ['信阳','焦作','安阳','开封','巩义']

    let arr8 = []
    for (let i = arr7.length; i >=0; i--) {
        arr8.push(arr7[i])
        
    }
    console.log(arr8)
  /*
  直接翻转数组 使用reverse()
  修改数组的本身
  */
    arr7.reverse()
    console.log(arr7);

    let n = '崔新芳'
    //每个字符之间是空字符
    //切割成数组
    let arr9 =n.split('')
    //翻转数组
    arr9.reverse()
    //拼接成字符串
    let as= arr9.join('')
    console.log(as)

 

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

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

相关文章

2003-2022年高铁站开通时间

2003-2022年高铁站开通时间 1、时间区间&#xff1a;2003-2022年 2、指标如下&#xff1a;高铁站名称、开通时间、所在省份、所在城市、所属线路名称、以及相关备注 指标说明&#xff1a;Hsrwsnm[高铁站名称]-高铁站名称 Optm[开通时间]-高铁站开通的时间 Prvn[所在省份]-高…

《Go 语言第一课》课程学习笔记(一)

配好环境&#xff1a;选择一种最适合你的 Go 安装方法 选择 Go 版本 一般情况下&#xff0c;建议采用最新版本。因为 Go 团队发布的 Go 语言稳定版本的平均质量一直是很高的&#xff0c;少有影响使用的重大 bug。可以根据不同实际项目需要或开源社区的情况使用不同的版本。 有…

【Web 表单】与用户数据打交道-2(mdn笔记)

8. UI 伪类 8.1 都有什么样的伪类&#xff1f; 我们可以使用的&#xff08;截至 CSS 2.1&#xff09;与表单相关的原始伪类是&#xff1a; :hover&#xff1a;只在鼠标指针悬停在一个元素上时选择该元素。:focus&#xff1a;只在元素被聚焦时选择该元素&#xff08;也就是说&am…

绘制 PCA 双标图和碎石图

1、双标图 import numpy as np import matplotlib.pyplot as plt from sklearn.decomposition import PCA from sklearn.preprocessing import StandardScaler from sklearn import datasets# data np.random.random((1000,10)) # y np.random.randint(0,6,1000)iris datase…

C# WPF 无焦点自动获取USB 二维码扫码枪内容,包含中文

C# WPF 无焦点自动获取USB 二维码扫码枪内容&#xff0c;包含中文 前言项目背景 需要预知的知识实现方案第一步 安装键盘钩子第二步 获取输入的值第3 步 解决中文乱码问题分析解决思路工具函数 结束 前言 USB接口的扫码枪基本就相当于一个电脑外设&#xff0c;等同于一个快速输…

Jmeter数据驱动 —— csv高效用例

目录 1、设置测试用例&#xff0c;创建用例数据文件&#xff1a;testcase.csv 2、新建一个线程组&#xff0c;命名为&#xff1a;数据驱动&#xff0c;添加配置元件-HTTP请求默认值&#xff0c;配置好IP地址和端口号 3、添加逻辑控制器-循环控制器。循环控制器的作用可以控制…

IDEA中导出Javadoc遇到的GBK编码错误的解决思路和应用

IDEA中导出Javadoc遇到的GBK编码错误的解决思路和应用 ​ 当我们在导出自己写的项目的api文档的时候呢&#xff0c;有的时候会出现以下问题&#xff1a;也就是GBK编码错误不可导出 错误描述&#xff1a;编码GBK的不可映射字符无法导出&#xff0c;可以看出这是我们自己写的中文…

移动app软件安全性测试内容有哪些?专业移动app测试报告获取

移动app软件安全性测试报告是评估和验证移动应用程序在设计和开发过程中是否具有足够的安全性措施。在当今移动应用程序的高度发展和普及中&#xff0c;保护用户的个人数据和信息安全至关重要。 一、移动app软件安全性测试包括的内容 1、权限访问测试&#xff1a;测试app获取…

【BIOS】Bios设置通电即自动开机。

【问题需求】 设置电脑/服务器接通电源后&#xff0c;自动开机。 【解决方案】 不同主板的bios设置不一样&#xff0c;但方向都差不多。 在此整理一些不同准版bios的设置方法。 【通用主板Bios】 开机后连续按del键&#xff0c;进入Bios。 切换到【Advanced】菜单下&#xff…

【STM32学习】搭建一个简单的 keil5 工程

一、安装 pack 支持包 pack是支持包文件&#xff0c;当你的板子连接到电脑时&#xff0c;keil5 怎么知道你的板子是哪个型号的&#xff0c;这就需要用到 pack 文件了。Keil 官方下载pack文件的地址&#xff1a;download | device pack 我这里使用的是 STM324 系列 随后直接一…

Nginx运行Vue项目:基本运行

需求 在Nginx服务器中&#xff0c;运行Vue项目。 说明 Vue项目打包生成的生产文件&#xff0c;是无法直接在浏览器打开的。需要放到Nginx服务器中&#xff0c;才能够访问。 本文章只介绍最基本的情况&#xff1a;Nginx中运行一个Vue项目。 实际生产环境&#xff0c;一个Ng…

Qt开发实现字幕滚动效果

1、效果展示 我们经常能够在外面看到那种滚动字幕&#xff0c;那么就拿qt来做一个吧。 2、实现思路 实现一个窗口部件&#xff0c;这个窗口部件显示了一串文本标语,它会每t毫秒向左移动一个像素。如果窗口部件比文本宽,那么文本将会被多次重复,直到能够填满整个窗口部件的宽度…

设计模式之原型模式Prototype的C++实现

1、原型模式提出 在软件功能设计中&#xff0c;经常面临着“某些结构复杂的对象”的创建工作&#xff0c;且创建的对象想拥有其他对象在某一刻的状态&#xff0c;则可以使用原型模型。原型模型是通过拷贝构造函数来创建对象&#xff0c;并且该对象拥有其他对象在某一刻的状态。…

嵌入式设备应用开发(linux应用的几个场景)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 linux内核是可以裁剪的,所以除了pc电脑可以用linux之外,小的嵌入式设备其实也可以用linux。前面我们讨论了soc的各个驱动,本质上还是要把这些外设用起来。操作系统帮助我们把这些…

go语言恶意代码检测系统--对接前端可视化与算法检测部分

Malware Detect System 1 产品介绍 恶意代码检测系统。 2 产品描述 2.1 产品功能 功能点详细描述注册账号未注册用户注册成为产品用户&#xff0c;从而具备享有产品各项服务的资格登录账号用户登录产品&#xff0c;获得产品提供的各项服务上传恶意样本用户可以将上传自己的…

虹科分享 | 使用工业无线方案的包装机械运输轨道系统将会是什么样子的?

背景 包装机械制造商正面临着大规模定制和客户动态需求的新挑战。随着包装机械设计向工业4.0迈进&#xff0c;灵活性、更高的吞吐量和减少停机时间成为关键要求。柔性制造系统需要具备快速更换新产品类型、重新安排操作以及根据产量和产能的重大变化进行调整的能力。因此&…

北京开发者社区简介

标题 北京城市开发者社区简介导语简介技术交流与分享创新与创业平台城市发展与科技应用线上线下活动获益和奖励 展望未来加入我们往期活动照片 博主 默语带您 Go to New World. ✍ 个人主页—— 默语 的博客&#x1f466;&#x1f3fb; 《java 面试题大全》 &#x1f369;惟余…

【ARM】Day4 点亮LED灯

1. 思维导图 2. 自己编写代码实现三盏灯点亮 .text .global _start _start: /**********LED1&#xff0c;LED2,LED3点灯:PE10,PF10,PE8**************/ RCC_INIT:使能GPIOE组/GPIOF组控制器,通过RXCC_MP_AHB4ENSETR设置第[5:4]位写1,地址:0x50000A28[5:4]1ldr r0,0x50000A28 …

c#设计模式-结构型模式 之 桥接模式

前言 桥接模式是一种设计模式&#xff0c;它将抽象与实现分离&#xff0c;使它们可以独立变化。这种模式涉及到一个接口作为桥梁&#xff0c;使实体类的功能独立于接口实现类。这两种类型的类可以结构化改变而互不影响。 桥接模式的主要目的是通过将实现和抽象分离&#xff0c;…

kafka线上问题优化

如何防止消息丢失 生产者&#xff1a; 使用同步发送把ack设成1或者all&#xff08;非0&#xff0c;0可能会出现消息丢失的情况&#xff09;&#xff0c;并且设置同步的分区数>2 消费者&#xff1a;把自动提交改成手动提交 如何防止重复消费 在防止消息丢失的方案中&#…