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

目录

一.数组的增删方法

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);  //6arr1.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,其他非法字符都会被解析为03.如果不写结束位置,则直接截取到最后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.rhkb.cn/news/92711.html

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

相关文章

使用 Visual Studio Code 调试 CMake 脚本

之前被引入到 Visual Studio 中的 CMake 调试器&#xff0c;现已在 Visual Studio Code 中可用。 也就是说&#xff0c;现在你可以通过在 VS Code 中安装 CMake 工具扩展&#xff0c;来调试你的 CMakeLists.txt 脚本了。是不是很棒? 背景知识 Visual C 开发团队和 CMake 的维…

最全的【DDD领域建模】小白学习手册(文末附资料)

1、前言&#xff1a; 在当时的环境下&#xff0c;单体应用仍然是市场的主体&#xff0c;但是大型复杂软件系统已经出现&#xff0c;给团队的设计和开发工作带来了比较大的挑战。 DDD提供了一种新的设计思路&#xff0c;通过对于业务子域和限界上下文的划分&#xff0c;建立跨…

【Oracle 数据库 SQL 语句 】积累1

Oracle 数据库 SQL 语句 1、分组之后再合计2、显示不为空的值 1、分组之后再合计 关键字&#xff1a; grouping sets &#xff08;&#xff08;分组字段1&#xff0c;分组字段2&#xff09;&#xff0c;&#xff08;&#xff09;&#xff09; select sylbdm ,count(sylbmc) a…

【数据结构OJ题】链表中倒数第k个结点

原题链接&#xff1a;https://www.nowcoder.com/practice/529d3ae5a407492994ad2a246518148a?tpId13&&tqId11167&rp2&ru/activity/oj&qru/ta/coding-interviews/question-ranking 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 …

进程间通信——信号

信号的概念 信号是 Linux进程间通信的最古老的方式之一&#xff0c;是事件发生时对进程的通知机制&#xff0c;有时也称之为软件中断&#xff0c;它是在软件层次上对中断机制的一种模拟&#xff0c;是一种异步通信的方式。信号可以导致一个正在运行的进程被另一个正在运行的异…

手机商城网站的分析与设计(论文+源码)_kaic

目录 摘 要 1 1 绪论 2 1.1选题背景意义 2 1.2国内外研究现状 2 1.2.1国内研究现状 2 1.2.2国外研究现状 3 1.3研究内容 3 2 网上手机商城网站相关技术 4 2.1.NET框架 4 2.2Access数据库 4 2.3 JavaScript技术 4 3网上手机商城网站分析与设…

复古游戏库管理器RomM

什么是 RomM &#xff1f; RomM&#xff08;代表 Rom Manager&#xff09;是一个专注于复古游戏的游戏库管理器。通过 Web 浏览器管理和组织您的所有游戏。受 Jellyfin 的启发&#xff0c;允许您从现代界面管理所有游戏&#xff0c;同时使用 IGDB 元数据丰富它们。 RomM 支持的…

线上通过Nginx部署前端工程,并且配置SSL

介绍、为了更好的帮助大家学习&#xff0c;减少歧义,IP地址我就不隐藏了&#xff0c;公司也是我自己的公司。你们就别来攻击了。 下面给出步骤: 一、前期准备工作 通过在目标服务器上安装宝塔面板、安装redis、mysql、nginx、jdk环境等 1、 2、前端工程通过npm run build 打…

完美解决Github提交PR后报错:File is not gofumpt-ed (gofumpt)

问题阐述 最近在Github上提交PR后&#xff0c;遇到了这么一个问题&#xff1a;golangci-lint运行失败&#xff0c;具体原因是File is not gofumpt-ed (gofumpt)。 名词解释 golangci-lint&#xff1a; golangci-lint 是Go语言社区中常用的代码质量检查工具&#xff0c;它可以…

Redis的AOF持久化

除了RDB持久化功能之外&#xff0c;Redis还提供了AOF持久化功能。与RDB 持久化通过保存数据库中的键值对来记录数据库状态不同&#xff0c;AOF持久化是通过保存Redis服务器所执行的写命令来记录数据库状态的&#xff0c;如下图所示。 举个例子&#xff0c;如果我们对空白的数据…

【JVM】垃圾回收算法

目录 一、判断对象已“死” 1.1、引用计数算法 1.2、可达性分析算法 1.3、引用的概念 二、垃圾收集算法理论 2.1、分代收集理论 三、垃圾收集算法 3.1、标记--清除算法 3.2、标记--复制算法 3.3、标记--整理算法 一、判断对象已“死” 在堆里面存放着Java世界中几乎所…

大数据课程I4——Kafka的零拷贝技术

文章作者邮箱&#xff1a;yugongshiyesina.cn 地址&#xff1a;广东惠州 ▲ 本章节目的 ⚪ 掌握Kafka的零拷贝技术&#xff1b; ⚪ 了解常规的文件传输过程&#xff1b; 一、常规的网络传输原理 表面上一个很简单的网络文件输出的过程&#xff0c;在OS底层&…

接口测试自动化:简化测试流程,提升效率

接口测试自动化&#xff1a;简化测试流程&#xff0c;提升效率 什么是接口测试自动化&#xff1f; 接口测试自动化是指使用特定的工具和技术来自动化执行接口测试的过程。通过编写脚本&#xff0c;自动化工具可以模拟用户与软件系统的交互&#xff0c;验证接口的功能和性能。…

函数递归专题(案例超详解一篇讲通透)

函数递归 前言1.递归案例:案例一&#xff1a;取球问题案例二&#xff1a;求斐波那契额数列案例三&#xff1a;函数实现n的k次方案例四&#xff1a;输入一个非负整数&#xff0c;返回组成它的数字之和案例五&#xff1a;元素逆置案例六&#xff1a;实现strlen案例七&#xff1a;…

使用巴特沃兹滤波器的1D零相位频率滤波研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

Python源码05:使用Pyecharts画词云图图

**Pyecharts是一个用于生成 Echarts 图表的 Python 库。Echarts 是一个基于 JavaScript 的数据可视化库&#xff0c;提供了丰富的图表类型和交互功能。**通过 Pyecharts&#xff0c;你可以使用 Python 代码生成各种类型的 Echarts 图表&#xff0c;例如折线图、柱状图、饼图、散…

AI如何看待能力,学历,文凭

1 假设&#xff1a; {文凭}⊂{学历}⊂{能力} 2 证明&#xff1a; 首先&#xff0c;我们需要明确这些集合的定义和关系。 {能力}是一个包含各种能力的集合&#xff0c;例如学习能力、沟通能力、创新能力、领导能力和专业技能等。 {学历}是一个包含各种学历的集合&#xff0c…

没学C++,如何从C语言丝滑过度到python【python基础万字详解】

大家好&#xff0c;我是纪宁。 文章将从C语言出发&#xff0c;深入介绍python的基础知识&#xff0c;也包括很多python的新增知识点详解。 文章目录 1.python的输入输出&#xff0c;重新认识 hello world&#xff0c;重回那个激情燃烧的岁月1.1 输出函数print的规则1.2 输入函…

【Java从0到1学习】09 正则表达式

1. 正则表达式概述 在编写处理字符串的程序或网页时&#xff0c;经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说&#xff0c;正则表达式就是记录文本规则的代码。 正则表达式&#xff0c;又称正规表示法、常规表示法&#xff…

机器学习笔记:李宏毅diffusion model

1 概念原理 首先sample 一个都是噪声的vector然后经过denoise network 过滤一些杂质接着继续不断denoise&#xff0c;直到最后出来一张清晰图片 【类似于做雕塑&#xff0c;一开始只是一块石头&#xff08;噪声很杂的雕塑&#xff09;&#xff0c;慢慢雕刻出想要的花纹】 同一个…