当前位置: 首页 > news >正文

JS都有哪些操作数组的方法

JavaScript 中操作数组的方法非常丰富,这些方法大致可以分为几类:创建和初始化数组、添加元素、删除元素、遍历数组、搜索元素、数组排序、数组映射和过滤等。以下是一些常用的数组操作方法:

1. 创建和初始化数组

  • Array():创建一个空数组,或者根据提供的参数创建一个具有特定长度或特定元素的数组。
  • Array.of():创建一个具有可变数量参数的新数组实例,而不考虑参数的数量或类型。
  • Array.from():从类似数组或可迭代的对象中创建一个新的浅拷贝数组实例。

2. 添加元素

  • push():在数组的末尾添加一个或多个元素,并返回新的长度。
  • unshift():在数组的开头添加一个或多个元素,并返回新的长度。
  • splice():通过删除现有元素和/或添加新元素来更改一个数组的内容。

3. 删除元素

  • pop():删除并返回数组的最后一个元素。
  • shift():删除并返回数组的第一个元素。
  • splice():同上,也可用于删除元素。

4. 遍历数组

  • forEach():对数组的每个元素执行一次提供的函数。
  • map():创建一个新数组,其结果是该数组中的每个元素是调用一次提供的函数后的返回值。
  • filter():创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。
  • reduce():对数组中的每个元素执行一个由您提供的reducer函数(升序执行),将其结果汇总为单个返回值。
  • every():测试一个数组内的所有元素是否都能通过被提供的函数测试。
  • some():测试数组中是不是至少有1个元素通过了被提供的函数测试。
  • find():返回数组中满足提供的测试函数的第一个元素的值。
  • findIndex():返回数组中满足提供的测试函数的第一个元素的索引。如果不存在,则返回-1。

5. 搜索元素

  • indexOf():返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。
  • findIndex():同上,但允许你使用测试函数来搜索元素。
  • includes():用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回 true,否则返回 false。

6. 数组排序

  • sort():对数组的元素进行排序,并返回数组。

7. 数组映射和过滤

  • map():如之前所述,用于创建一个新数组,其结果是该数组中的每个元素是调用一次提供的函数后的返回值。
  • filter():如之前所述,用于创建一个新数组,其包含通过所提供函数实现的测试的所有元素。

8. 其他

  • concat():用于合并两个或多个数组。此方法不会改变现有的数组,而仅仅会返回被合并数组的一个副本。
  • slice():返回一个新的数组对象,这一对象是一个由 beginend(不包括 end)的浅拷贝的原数组的片段。
  • flat():按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。
  • flatMap():首先使用映射函数映射每个元素,然后将结果压缩成一个新数组。

这些只是JavaScript中数组操作方法的冰山一角,但涵盖了大多数常见的用例。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • JS简介 JS特点
  • 用ceres实现lio-sam平面点匹配
  • python开发VTK入门
  • Amazon QuickSight 实验
  • 秋招突击——算法练习——8/26——图论——200-岛屿数量、994-腐烂的橘子、207-课程表、208-实现Trie
  • Python画笔案例-030 实现打点之斜正方
  • 1306. 跳跃游戏 III
  • 【GIT】idea中实用的git操作,撤回commit,撤回push、暂存区使用
  • Oracle中数据类型 NVARCHAR2 与 VARCHAR2 的对比
  • 【嵌入式】内存未对齐导致程序崩溃(铺获信号量SIGBUS,数值7)
  • Ubuntu上qt使用SSH样式表
  • zm-tree-org 数据量过大时,全部展开后,根节点点击收缩,树形消失
  • 第一章 Spring Boot入门
  • 机器学习引领未来:赋能精准高效的图像识别技术革新
  • AWS SES服务 Golang接入教程(排坑版)
  • 08.Android之View事件问题
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • eclipse的离线汉化
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 数据科学 第 3 章 11 字符串处理
  • 一起参Ember.js讨论、问答社区。
  • ​Benvista PhotoZoom Pro 9.0.4新功能介绍
  • ​Linux·i2c驱动架构​
  • ​力扣解法汇总946-验证栈序列
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (55)MOS管专题--->(10)MOS管的封装
  • (第二周)效能测试
  • (附源码)spring boot车辆管理系统 毕业设计 031034
  • (三)Kafka 监控之 Streams 监控(Streams Monitoring)和其他
  • (推荐)叮当——中文语音对话机器人
  • (五)IO流之ByteArrayInput/OutputStream
  • (转) ns2/nam与nam实现相关的文件
  • (转)【Hibernate总结系列】使用举例
  • (转)linux下的时间函数使用
  • .NET 5种线程安全集合
  • .net CHARTING图表控件下载地址
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .Net Remoting常用部署结构
  • .Net程序帮助文档制作
  • .net反编译的九款神器
  • .NET与java的MVC模式(2):struts2核心工作流程与原理
  • .php文件都打不开,打不开php文件怎么办
  • .vimrc 配置项
  • ::前边啥也没有
  • @Autowired和@Resource的区别
  • @EnableWebMvc介绍和使用详细demo
  • @hook扩展分析
  • [100天算法】-目标和(day 79)
  • [20140403]查询是否产生日志
  • [2016.7 test.5] T1
  • [Android] Amazon 的 android 音视频开发文档
  • [BZOJ1053][HAOI2007]反素数ant
  • [DevEpxress]GridControl 显示Gif动画
  • [Flutter] extends、implements、mixin和 abstract、extension的使用介绍说明