探索JavaScript数组API:提升你的编程效率

大家好,今天我们来聊聊JavaScript中数组的常用API。数组是JavaScript中非常重要的一种数据结构,掌握数组的API对于提高编程效率具有重要意义。以下是一些实用的JavaScript数组API,让我们一起来看看吧!

一、创建数组

1、使用Array构造函数

let arr1 = new Array();
let arr2 = new Array(5); // 创建一个长度为5的数组
let arr3 = new Array('a', 'b', 'c'); // 创建一个包含三个元素的数组

2、 使用数组字面量

let arr = ['a', 'b', 'c'];

二、数组常用API

1、push() 和 pop()

push() 方法用于在数组的末尾添加一个或多个元素,并返回新的长度。 pop() 方法用于删除数组的最后一个元素,并返回被删除的元素。

let arr = [1, 2, 3];
arr.push(4); // 返回4,arr变为[1, 2, 3, 4]
arr.pop(); // 返回4,arr变为[1, 2, 3]

2、shift() 和 unshift()

shift() 方法用于删除数组的第一个元素,并返回被删除的元素。 unshift() 方法用于在数组的开头添加一个或多个元素,并返回新的长度。

let arr = [1, 2, 3];
arr.unshift(0); // 返回4,arr变为[0, 1, 2, 3]
arr.shift(); // 返回0,arr变为[1, 2, 3]

3、slice()

slice() 方法用于提取原数组的一部分,返回一个新数组。该方法不会改变原数组。

let arr = [1, 2, 3, 4, 5];
arr.slice(1, 3); // 返回[2, 3],arr不变

4、splice()

splice() 方法用于添加或删除数组中的元素。该方法会改变原数组。

let arr = [1, 2, 3, 4, 5];
arr.splice(2, 1, 'a', 'b'); // 从索引2开始删除1个元素,并添加'a'和'b',arr变为[1, 2, 'a', 'b', 4, 5]

5、join()

join() 方法用于将数组中的所有元素连接成一个字符串。

let arr = [1, 2, 3];
arr.join('-'); // 返回'1-2-3'

6、concat()

concat() 方法用于合并两个或多个数组。该方法不会改变原数组,返回一个新数组。

let arr1 = [1, 2, 3];
var arr2 = [4, 5, 6];
arr1.concat(arr2); // 返回[1, 2, 3, 4, 5, 6]

7、reverse()

reverse() 方法用于颠倒数组中元素的顺序。该方法会改变原数组。

let arr = [1, 2, 3];
arr.reverse(); // 返回[3, 2, 1],arr变为[3, 2, 1]

8、sort()

sort() 方法用于对数组元素进行排序。默认按照字符串Unicode码点进行排序,可传入自定义排序函数。该方法会改变原数组。

let arr = [3, 1, 4, 1, 5, 9];
arr.sort(); // 返回[1, 1, 3, 4, 5, 9],arr变为[1, 1, 3, 4, 5, 9]

9、map()

map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数。

let arr = [1, 2, 3];
arr.map(function(item) {
  return item * 2;
}); // 返回[2, 4, 6]

10、filter()

filter() 方法创建一个新数组,包含通过所提供函数实现的测试的所有元素。

let arr = [1, 2, 3, 4, 5];
arr.filter(function(item) {
  return item > 3;
}); // 返回[4, 5]

11、reduce()

reduce() 方法对数组中的每个元素执行一个由您提供的reducer函数(升序执行),将其结果汇总为单个返回值。

let arr = [1, 2, 3, 4, 5];
arr.reduce(function(total, item) {
  return

 

 

 

 

 

 

 

 

 

 

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PHP Paypal支付restful API接口集成插件教程

最近在做一个PHP外贸独立站,想集成PayPal在线支付,于是就想把PayPal做成一个插件。下面就教大家如何一步步来开发PayPal整个流程,有需要的朋友点赞收藏,或下载本插件代码参考。 Paypal接口申请 必须是企业认证的帐号才能申请在…

Visual Studio开发lua脚本环境搭建

在Visual Studio上开发lua脚本环境搭建 1、下载lua的jdk安装,以及环境变量配置 下载LuaForWindows_v5.1.5-52.exe安装, 安装好之后,检查是否路径自动。 下载地址: https://github.com/rjpcomputing/luaforwindows/releases (1…

MySQL 性能优化详解

MySQL 性能优化详解 硬件升级系统配置优化调整buffer_pool数据预热降低日志的磁盘落盘 表结构设计优化SQL语句及索引优化SQL优化实战案例 MySQL性能优化我们可以从以下四个维度考虑:硬件升级、系统配置、表结构设计、SQL语句和索引。 从成本上来说:硬件升…

智已汽车x-signature 登录算法 签到

智已汽车x-signature 登录算法 签到 python代码成品

Android 使用 Canvas 和 Paint 实现圆角图片

学习笔记 效果展示: 全部代码: public class YuanActivity extends AppCompatActivity {private ActivityYuanBinding binding;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 通过 DataBinding 获取布局文件binding …

掌控时间,成就更好的自己

在个人成长的道路上,时间管理是至关重要的一环。有效的时间管理能够让我们更加高效地完成任务,实现自己的目标,不断提升自我。 时间对每个人都是公平的,一天只有 24 小时。然而,为什么有些人能够在有限的时间里做出卓…

flask-socketio相关总结

flask-socketio是一个为flask应用程序添加的实时双向通信功能的扩展库,有了这个库,就可以在flask应用中应用websocket协议,帮助flask实现低延迟、双向的客户端、服务端通信。客户端通过任何SocketIO官方库,都能与服务器建立长连接…

YOLOv8改进,YOLOv8引入CARAFE轻量级通用上采样算子,助力模型涨点

摘要 CARAFE模块的设计目的是在不增加计算复杂度的情况下,提升特征图的质量,特别是在视频超分辨率任务中,提升图像质量和细节。CARAFE结合了上下文感知机制和聚合特征的能力,通过动态的上下文注意力机制来提升细节恢复的效果。 理论介绍 传统的卷积操作通常依赖于局部区域…

如何把阿里云ECS里的文件下载到本地(免登录免配置)

如何把阿里云ECS里的文件下载到本地(免登录免配置) 作为一个阿里云ECS的用户,Up时长会遇到希望把ECS里的文件下载到自己的个人电脑,然后在自己的电脑里面查看,保存或者发送给别人。最近发现阿里云新上了一个功能&…

【Notepad++】---设置背景为护眼色(豆沙绿)最新最详细

在编程的艺术世界里,代码和灵感需要寻找到最佳的交融点,才能打造出令人为之惊叹的作品。而在这座秋知叶i博客的殿堂里,我们将共同追寻这种完美结合,为未来的世界留下属于我们的独特印记。 【Notepad】---设置背景为护眼色&#xf…

【Axios】如何在Vue中使用Axios请求拦截器

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

在服务器上实现本地python文件的依赖

1、在python中,一个python文件就可以视为一个模块进行导入 2、使用import 导入时,若使用pip 下载过可以直接导入 3、假如是自己写的同项目中的文件会去sys.path 中查找 比如说 我现在 test 下有一个 python文件 运行 下面的代码 打印的数据如上图所示p…

emacs 折腾日记(一)——序言

初次知道emacs这个东西是在《程序员的呐喊》这本书。书中的作者提倡学习编译原理,推崇emacs。现在距离我知道emacs已经过去了快8年,期间不断的重复学习——放弃——学习的路子。与过去学习vim类似,vim我也经历过放弃到学习,最后有…

【二分查找】力扣 875. 爱吃香蕉的珂珂

一、题目 二、思路 速度 k(单位:根/小时)是存在一个取值范围的。 速度越大肯定在规定的时间之内一定会吃完全部的香蕉,但也是可以确定出一个上界的。由于只要保证一小时之内,可以吃完香蕉数目最多的那一堆的香蕉&…

如何找到你的决定性优势

在任何高风险竞争中,无论是争取客户还是发展职业生涯,拥有决定性优势至关重要。沃伦巴菲特称之为“持久竞争优势”,迈克尔波特将其称为“竞争优势”。无论名称如何,核心理念是相同的: 永远不要参与你没有绝对优势的竞争…

【JavaWeb后端学习笔记】SpringBoot框架下Http请求参数接收

Http请求参数接收 1、简单参数2、实体参数3、数组参数4、集合参数5、日期参数6、Json格式参数(常用)7、路径参数(常用)8、接收请求参数常用的几个注解 Http请求能携带各种格式的请求参数。因此也就需要不同的接收方式。 1、简单参…

Qt6.8 QGraphicsView鼠标坐标点偏差

ui文件拖放QGraphicsView,src文件定义QGraphicsScene赋值给图形视图。 this->scene new QGraphicsScene();ui.graph->setScene(this->scene);对graphicview过滤事件,只能在其viewport之后安装,否则不响应。 ui.graph->viewport…

macmini安装ubuntu网卡驱动BCM4360

安装成功效果如下 成功连接wifi 成功分配到IP 执行命令如下 1. sudo apt update 2. sudo apt install broadcom-sta-dkms 3. 重启电脑

网络测速工具

1. SPEEDTEST https://www.speedtest.net/ 2. 测速网 测速网 - 专业测网速, 网速测试, 宽带提速, 游戏测速, 直播测速, 5G测速, 物联网监测,Wi-Fi 7,Wi-Fi 6,FTTR,全屋Wi-Fi - SpeedTest.cn 3. 字节比特换算 bps(bits per second) 字节和比特的换算…

docker安装victoriametrics

docker安装victoriametrics 1、单机版安装2、victoriametrics增删改查2.1 、插入数据2.1.1 组装数据插入victoriametrics(java代码插入)2.1.2 Prometheus数据插入victoriametrics2.1.3 官网push到victoriametrics写法 2.2 、查询2.2.1 、Instant query(即时查询&…