js 数组的常用方法

目录

数组关注是否改变原数组

操作

增

  会影响原数组

push()

unshift()

splice()

不会影响

concat()

删

会影响原数组

pop()

shift()

splice()

不会影响

slice()

改

splice()

查

indexOf()

includes()

find()

排序

reserve()

sort()

转换

join()

迭代方法

some()

every()

forEach()

filter()

map()


数组关注是否改变原数组

操作

增

  会影响原数组

  • push()

    • 接收任意数量的参数,将他们添加到数组末尾,放回数组最新长度
  • unshift()

    • 在数组头部添加任意多个值,返回新的数组长度
    • let arr = ['a', 'b', 'c']
      let len = arr.unshift(1, 0)
      console.log(arr) // ['1', '0', 'a', 'b', 'c']
      console.log(len) // 5
  • splice()

    • 传入三个参数,分别是开始位置,0(要删除的元素数量)、插入的元素,返回空数组
    • let arr = ['a', 'b', 'c']
      let add = arr.splice(1, 0, 'a', 'b')
      console.log(arr) // ['a', 'a', 'b', 'b', 'c']
      console.log(add) // []

不会影响

  • concat()

    • 创建一个当前数组的副本,再把它的参数添加到副本末尾,返回这个新构建的数组,不会影响原始数组
    • let arr = ['a', 'b', 'c']
      let add = arr.concat('e', ['f', 'g'])
      console.log(add) // ['a', 'b', 'c', 'e', 'f', 'g']
      console.log(arr) // ['a', 'b', 'c']

删

会影响原数组

  • pop()
    • 删除数组的最后一项,减少数组的length值,返回被删除的项
  • shift()
    • 用于删除数组的第一项,减少数组的length值,返回被删除项
  • splice()
    • 传入两个参数,开始位置及删除数量,返回包含删除元素
    • let letters = ['a', 'b', 'c', 'd', 'e']
      let letters1 = letters.splice(1,2) 
      console.log(letters) // ['a', 'd', 'e']
      console.log(letters1) //['b', 'c']

不会影响

  • slice()
    • 用于创建一个包含原有数组一个或者多个元素的新数组,不会改变原始数组
    • let letters = ['a', 'b', 'c', 'd', 'e']
      let letters1 = nums.slice(1) //['b', 'c', 'd', 'e']
      let letters2 = nms.slice(1,3) //['b', 'c']

改

splice()

  • 会修改原数组的内容
  • 传入三个参数,分别是开始位置,要删除的数量,要插入的任意多个元素,返回被删除元素的数组,对原数组产生影响
  • let arr = ['a', 'b', 'c']
    let remove = arr.splice(1,1, 'd', 'f')
    console.log(arr) // ['a', 'd', 'f', 'c']
    console.log(remove) // 'b'

查

查找元素返回元素坐标或者元素值

  • indexOf()

    • 查找元素在数组中的位置,没找到返回-1
    • let arr = [1,2,3]
      arr.indexOf(2) == 1
  • includes()

    • 查找的元素在数组中的位置,找到true,没找到false
    • let arr = ['xx', 'banana', 'hah']
      arr.includes('mm') //false
  • find()

    • 返回第一个匹配的元素
    • let stus =[{name: 'xx',age: '20'},{name: 'xx1',age: '18'},{name: 'xx2',age: '15'}
      ]
      stus.find((currentValue, index, arr) => {return currentValue.age > 18
      }) //{name: 'xx', age: '20'}

排序

reserve()

  • 改变原数组
  • 将数组反转
  • let arr = [1, 2, 3]
    let result = arr.reserve()
    console.log(result) // [3, 2, 1]

sort()

  • 改变原数组
  • 接受一个比较函数,用于判断哪个值排在前面
  • function compare(a, b) {return b - a
    }
    let arr = [1, 2, 3]
    arr.sort(compare)

转换

join()

  • 接收一个参数(字符串分隔符),返回包含所有项的字符串
  • let arr = [1, 2, 3]
    let result = arr.join('.')
    console.log(result) //1.2.3

迭代方法

some()

  • 对数组的每一项都运行传入的函数,至少有一个元素返回true,这个方法就返回true
  • let arr = [1, 2, 3]
    let result = arr.reserve()
    console.log(result) // [3, 2, 1]

every()

  • 对数组的每一项都运行传入的函数,所有元素返回true,这个方法就返回true
  • let arr = [1, 2, 3]
    let result = arr.every((item, index, array) => {return item > 2
    })
    console.log(result) //false

forEach()

  • 对数组中的每一项都运行传入的函数,没有返回值

filter()

  • 对数组中的每一项都运行函数,返回为true会组成数组
  • let arr = [1, 2, 3]
    let result = arr.filter((item, index, array) => {return item > 1
    })
    console.log(result) // [2, 3]

map()

  • 对数组中每一项都运行函数,返回由每次函数调用的结果组成新数组
  • let arr = [1, 2, 3]
    let result = arr.map((item, index, array) => {return item*2
    })
    console.log(result) // [2, 4, 6]

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

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

相关文章

大语言模型(LLM)漏洞爆发,AI模型无一幸免

本文概述了人工智能初创公司Anthropic于2024年04月03日发表的一篇针对人工智能安全的论文,该公司在本论文中宣布的一种新的“越狱”技术,名为Many-shot Jailbreaking(多轮越狱)。文章详细描述了目前大语言模型(LLM&…

CMake 编译项目

一、概述 cmake 是C一个很重要的编译和项目管理工具,我们在git 上以及常见的项目现在多数都是用cmake 管理的,那么我们今天就做一个同时有Opencv和CGAL 以及PCL 的项目。 二、项目管理 重点是CMakeList.txt 1、CMakeList.txt cmake_minimum_requir…

Springboot3集成Web、RedisTemplate、Test和knife4j

本例将展示&#xff0c;如何在Springboot3中完成&#xff1a; Redis功能的Web接口实现构建Redis功能的单元测试knife4j自动化生成文档 Redis功能 Pom.xml <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter…

windows SDK编程 --- 消息(3)

前置知识 一、消息的分类 1. 鼠标消息 处理与鼠标交互相关的事件&#xff0c;比如移动、点击和滚动等。例如&#xff1a; WM_MOUSEMOVE: 当鼠标在窗口客户区内移动时发送。WM_LBUTTONDOWN: 当用户按下鼠标左键时发送。WM_LBUTTONUP: 当用户释放鼠标左键时发送。WM_RBUTTOND…

PaddleSeg(1)配置文件详解

PaddleSeg配置文件在configs目录下,一个文件主要包括几个部分: 1.bs和iter batch_size: 1 iters: 100 #迭代次数2.训练数据及其处理 3.验证数据集及其处理 4.模型 5.优化器 6.学习策略 7.损失函数 2.训练数据及其处理 train_dataset: # 训练集数据设置type: Dataset # 数据…

区块链交易所技术开发架构解析 交易所开发团队

区块链交易所是加密货币市场中的关键基础设施之一&#xff0c;它提供了一个平台&#xff0c;让用户可以买卖各种数字资产。而搭建一个功能完善、安全可靠的交易所需要一个复杂的技术开发架构&#xff0c;以及一个协调配合的交易所开发团队。下面我们将分析交易所的技术架构以及…

Elasticsearch:崭新的打分机制 - Learning To Rank (LTR)

警告&#xff1a;“学习排名 (Learning To Rank)” 功能处于技术预览版&#xff0c;可能会在未来版本中更改或删除。 Elastic 将努力解决任何问题&#xff0c;但此功能不受官方 GA 功能的支持 SLA 的约束。 注意&#xff1a;此功能是在版本 8.12.0 中引入的&#xff0c;并且仅适…

Ghost Buster Pro for Mac:强大的系统优化工具

Ghost Buster Pro for Mac是一款功能强大的系统优化工具&#xff0c;专为Mac用户设计&#xff0c;旨在提供全方位的系统清理、优化和维护服务。 Ghost Buster Pro for Mac v3.2.5激活版下载 这款软件拥有出色的垃圾清理能力&#xff0c;能够深度扫描并清除Mac上的无效目录、文件…

个人网站的SEO优化系列——如何实现搜索引擎的收录

如果你自己做了一个网站&#xff0c;并且想让更多的人知道你的网站&#xff0c;那么无非就是两种途径 一、自己进行宣传&#xff0c;或者花钱宣传 二、使用搜索引擎的自然流量 而如果搜索引擎都没有收录你的站点&#xff0c;别说是自然流量&#xff0c;就算是使用特定语句【sit…

文件上传服务器、文件展示等异步问题

问题&#xff1a; 文件上传模块&#xff1a;当文件已经上传完成&#xff0c;文件进度已经走完了&#xff0c;但是服务器响应还没有返回结果&#xff0c;出现了&#xff0c;获取不到上传后的文件路径&#xff0c;需要等待服务器返回结果后&#xff0c;才能获取文件路径并点击跳…

pytorch的mask-rcnn的模型参数解释

输入图像1920x1080,batch_size8为例. 训练阶段 loss_dict model(images,targets) 入参 images: List(Tensor(3,1920,1080))[8]targets: List(dict()[3])[8] dict详情见下表: keytypedtypesizeremarkboxesTensorfloat32(n,4)1the ground-truth boxes in [x1, y1, x2, y2] …

excel中怎么用乘法、加法来替代AND和OR函数

你可以使用乘法和加法来替代Excel中的AND和OR函数&#xff0c;虽然这样做可能会增加公式的复杂度&#xff0c;但在某些情况下是可行的。 1. 使用乘法替代AND函数&#xff1a;AND函数用于判断一系列条件是否同时成立&#xff0c;如果所有条件都为TRUE&#xff0c;则返回TRUE&…

IOMMU和SMMU详解

前言&#xff1a; IOMMU&#xff08;输入输出内存管理单元&#xff09;的原理与CPU中的MMU&#xff08;内存管理单元&#xff09;相似。它的作用是管理设备的内存访问请求&#xff0c;允许安全、高效地在设备和内存之间直接传输数据。IOMMU通常用于支持高速数据传输的设备&…

【前端】npm常用命令

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、npm是什么二、npm常用命令三、总结 前言 随着开发语言及人工智能工具的普及&#xff0c;使得越来越多的人能够上手操作执行一些简单命令&#xff0c;本文主…

java生成数据库数据到excel当做下拉选择,copy就完事~

背景&#xff1a;由于需要下载模板&#xff0c;模板包含下拉选择框&#xff0c;但是下拉选择框不想手写&#xff0c;并且需要从数据库读取&#xff0c;由于直接设置excel会有单元格最大255个字符长度限制&#xff0c;所以用到以下部分代码。 思路&#xff1a;由于数据模板在sh…

怎么通过Javascript脚本实现远程控制一路开关

怎么通过Javascript脚本实现远程控制一路开关呢&#xff1f; 本文描述了使用Javascript脚本调用HTTP接口&#xff0c;实现控制一路开关。一路开关可控制一路照明、排风扇等电器。 可选用产品&#xff1a;可根据实际场景需求&#xff0c;选择对应的规格 序号设备名称1智能WiFi…

JSON Web Token 入门

JSON Web Token&#xff08;缩写 JWT&#xff09;是目前最流行的跨域认证解决方案&#xff0c;本文介绍它的原理和用法。 一、跨域认证的问题 互联网服务离不开用户认证。一般流程是下面这样。 1、用户向服务器发送用户名和密码。 2、服务器验证通过后&#xff0c;在当前对话&…

基于微信小程序的宠物寄养小程序,附源码

博主介绍&#xff1a;✌IT徐师兄、7年大厂程序员经历。全网粉丝15W、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&#x1f3…

Redis中的慢查询日志和监视器

慢查询 添加新日志 在每次执行命令的之前和之后&#xff0c;程序都会记录微妙格式的当前UNIX时间戳&#xff0c;这两个时间戳之间的差就是服务器执行命令所耗费的时长&#xff0c;服务器会将这个时长作为参数之一传给slowlogPushEntryIfNeeded函数&#xff0c;而slowlogPushE…

每日一题:Spring MVC 的执行流程是什么❓

1、用户通过浏览器向服务器发送服务请求&#xff0c;请求会被 Spring MVC 的前端控制器 DispatcherServlet 拦截。 2、DsipatcherServlet 拦截请求后&#xff0c;会调用 HandlerMapping 处理器处理映射。 3、处理器根据URL找到具体的处理器&#xff0c;生成处理器对象及处理器…