JavaScript 中获取数组最后一个元素方法汇总
作者:天行无忌 发布时间:2024-06-07 15:25:25
标签:JavaScript,数组
当需要从 JavaScript 中的数组中获取最后一个元素时,有多种选择,本文将提供 3 种可用方法。
1. 数组 length 属性
??length?
? 属性返回数组中元素的数量。从数组的长度中减去 ??1?
? 得到数组最后一个元素的索引,使用它可以访问最后一个元素。从长度中减去 ??1?
? 的原因是,在 JavaScript 中,数组索引编号从 ??0?
? 开始。即第一个元素的索引将为 ??0?
?。因此,最后一个元素的索引将为数组的 ??length-1?
?。
const arrayTest = ["第一个元素", "第二个元素", "最后一个元素"];
const length = arrayTest.length;
const lastValue = arrayTest[length - 1];
console.log(lastValue); // 最后一个元素
2. 数组 slice 方法
??slice()?
? 方法从一个数组中返回特定的元素,作为一个新的数组对象。此方法选择从给定开始索引开始到给定结束索引结束的元素,不包括结束索引处的元素。??slice()?
? 方法不会修改现有数组,提供一个索引值返回该位置的元素,负索引值从数组末尾计算索引。数组匹配的解构赋值用于从 ??slice()?
? 方法返回的数组中获取元素。
const arrayTest = ["第一个元素", "第二个元素", "最后一个元素"];
const length = arrayTest.length;
const [lastValue] = arrayTest.slice(-1);
console.log(lastValue); // 最后一个元素
3. 数组 pop 方法
??pop()?
? 方法从数组中删除最后一个元素并将其返回,此方法会修改原来的数组。如果数组为空,则返回 ??undefined?
? 并且不修改数组。
const arrayTest = ["第一个元素", "第二个元素", "最后一个元素"];
const length = arrayTest.length;
const lastValue = arrayTest.pop();
console.log(lastValue); // 最后一个元素
console.log(arrayTest); // [ '第一个元素', '第二个元素' ]
性能比较
让按性能比较这 3 种方法。
const arrayTest = ["第一个元素", "第二个元素", "最后一个元素"];
console.time("==> length");
const length = arrayTest.length;
let lastValue = arrayTest[length - 1];
console.log(lastValue);
console.timeEnd("==> length");
console.time("====> slice");
let [lastValue1] = arrayTest.slice(-1);
console.log(lastValue1);
console.timeEnd("====> slice");
console.time("======> pop");
let lastValue2 = arrayTest.pop();
console.log(lastValue2);
console.timeEnd("======> pop");
输出的结果如下:
最后一个元素
==> length: 6.38ms
最后一个元素
====> slice: 0.038ms
最后一个元素
======> pop: 0.033ms
总结
??pop()?
? 方法是最快的,如果可以修改数组,则可以使用它。如果你不想改变数组,可以使用 ??slice()?
? 方法。利用数组 length 属性的方法是最慢的,属于是获取数组最后一个元素的最常用方法。
来源:https://blog.51cto.com/devpoint/6038512


猜你喜欢
- 简介查看百度搜索中文文本聚类我失望的发现,网上竟然没有一个完整的关于Python实现的中文文本聚类(乃至搜索关键词python 中文文本聚类
- 以前见过一个很漂亮的网页提示信息,就是把鼠标放到网页的文字或者图片上面就会有提示的那种透明的,还带个箭头,很漂亮,不知道谁在哪见过没有,感谢
- 在日常的前端开发工作中,我们会经常的与HTML、javascript、css等语言打交道,和一门真正的语言一样,计算机语言也有它的字母表、语
- Run Dashboard面板:IDEA升级到 2017.3.1 版本后,发现找不到Run Dashboard面板了。通过下面步骤教你找回R
- 一、anaconda的安装首先,下载安装包。Anaconda的下载方式有两种:通过官网下载,选择适合自己的电脑版本的安装包。https://
- 一、引 言 在速度上,静态页面要比动态页面的比方php快很多,这是毫无疑问的,但是由于静态页面的灵活性较差,如果不借助数据库或其他的设备保存
- 前言pandas对数据框也可以像excel一样进行数据透视表整合之类的操作。主要是针对分类数据进行操作,还可以计算数值型数据,去满足复杂的分
- <td width="15%" align="left">是否为分包人&l
- 本文实例讲述了Python计算程序运行时间的方法。分享给大家供大家参考。具体实现方法如下:import timedef start_slee
- 我们知道**代表次方。如下>>>12 * 12144>>>12 ** 2144>>>a
- 本文实例讲述了python求众数问题的方法,是一个比较典型的应用。分享给大家供大家参考。具体如下:问题描述:多重集中重数最大的元素称为众数.
- 最近无意中接触到了一篇文章,里面写了一个SQL的用法,是with...as,中午抽空记录一下用MySQL试了一下,发现并不支持该语法(版本:
- GO1.7之后,新增了context.Context这个package,实现goroutine的管理。Context基本的用法参考GOLAN
- 批量更新不同表的数据今天翻到以前写的批量更新表中的数据的存储过程,故在此做一下记录。当时MySQL中的表名具有如下特征,即根据需求将业务表类
- 问题我们需要以某种对齐方式将文本做格式化处理。解决方案对于基本的字符串对齐要求,可以使用字符串的ljust()、rjust()和center
- Windows Server 2003系统是现在很流行的服务器操作系统,许多网站都用它来做。但是如何保证服务器的相对安全,这个只要进行一些简
- 本次薯片会一改以往低调、沉稳之作风,先瑜伽团美女show上阵,再是以臭为首的吃喝团上阵,两轮下来大家情绪Hight到了极点,自然讨论的时候思
- 这几天写代码中遇到的一个常见问题,在Python中如何批量的生成一些变量,如生成变量X1, X2, X3,并在后续的方法中调用,完成赋值、取
- 以下分享一点我的经验 一般刚开始学SQL的时候,会这样写 SELECT * FROM table ORDER BY id LIMIT 100
- MERGE存储引擎把一组MyISAM数据表当做一个逻辑单元来对待,让我们可以同时对他们进行查询。构成一个MERGE数据表结构的各成员MyIS