Javascript 中获取列表中的最后一个元素

Posted by cl9000 on June 08, 2021

万物皆有其美,但并非人人都能发现。——<安迪.沃霍尔>

介绍

获取列表/数组的最后一个元素是一个常见的操作。在本教程中,我们将看看如何获取 JavaScript 数组/列表中的最后一个元素。

JavaScript 是一种弱类型无类型语言,这意味着在使用之前不需要声明变量的类型,因为 JavaScript 通过读取变量的值来确定类型。

1
2
3
4
5
6
let myList = ['cl9000', 12, 'admin', 56, 'We'10];
## 使用 length 获取最后一个元素

`length` 属性表示列表中元素的数量:
```js
console.log(myList.length)

JavaScript 中数组/列表中的元素索引与其他语言非常相似。我们可以访问一个元素,基于它的索引,通过在方括号中传递它[],引用数组。最后一个元素的索引为 length-1

由于 length 字段仅返回元素的保存值 - 这是一种快速、高效且廉价的操作。获取 JavaScript 数组/列表最后一个元素的最佳方法是:

1
2
3
4
var lastElement = myList[myList.length - 1];
console.log(lastElement);
// 结果
10

使用 pop() 获取最后一个元素

pop() 方法返回集合的最后一个元素,但在此过程中将其删除。但是,如果我们使用 ES6 中的 扩展运算符(...) - 我们可以通过在内存中临时复制列表并 pop()在副本上执行,保持原始列表完整来避免此功能。

*pop()` 方法

我们使用 pop() 从列表中删除最后一个元素:

1
2
3
4
5
6
var lastElement = myList.pop();
console.log(lastElement)
console.log(myList)
// 结果
// 10
// ['cl9000', 12, 'admin', 56, 'We']

如果您不需要原始列表保持完整,那么您可以从中弹出元素,但如果您确实需要原始列表,您可以制作一个副本并 pop()从中复制。

带有 ES6 扩展运算符(…) 的 pop()

ES6EcmaScript6 的缩写,它是一种JavaScript 标准,用于使 JavaScript 编程更容易(编码更少,但做得更多)。

它成立于 1997 年,它的第一个重大突破是在 2015 年,使用 ES6 标准(或 EcmaScript2015)。最新版本是 2020 年开发的第 11 个版本。所有版本都旨在使 JavaScript 编码更容易(使用新的语法规则、新的关键字等)。

我们在这里可以利用的是 扩展运算符(...)
除其他功能外,扩展运算符可以复制列表/数组:

1
[...myList]

这将生成一个新列表,其元素与myList. 话虽如此 - 我们可以pop()从新列表而不是原始列表中:

1
2
3
4
5
console.log([...myList].pop())
console.log(myList)
// 结果
// 10
// ['cl9000', 12, 'admin', 56, 'We', 10]

注意:这可能很方便编写,但不是最优的解决方案,因为它复制了一个列表。对于小列表,它不会大幅降低性能,但是对于更长的列表,这是简单地获取最后一个元素的低效方法。

使用slice()获取最后一个元素

slice(a, b) 方法

1
2
3
4
5
6
console.log(myList.slice(1, 4))
// [ 12, 'admin', 56]

console.log(myList.slice(-1))
// [10]
console.log(myList.slice(-1)[0])

注意: slice()当您想检索数组的最后N 个元素而不是一个元素时,最好使用它,因为您可以简单地使用它length-1。

使用 reverse() 获取最后一个元素

reverse()方法就地反转列表。最后一个元素将成为第一个元素,反之亦然:

1
console.log(myList.reverse())

现在我们的元素是第一个,所以我们可以使用myListReversed[0].

注意:反转数组/列表也是一个潜在的非常昂贵的操作。如果您只想访问最后一个元素,请避免反转集合。如果您无论如何都要反转它 - 您可以像这样访问元素。如果没有,请参考第一种使用方法length-1。

总结

其中最好、最有效且可能最直观的方法是第一种 - myList[myList.length()-1]. 这是您大部分时间将使用的。

使用 pop()从列表中删除元素并返回它。如果您想删除元素 - 这是您想要使用的方法,否则,您将不得不手动删除元素。

slice()给我们一个切片,如果我们想获得最后 N 个元素,这是一个很好的方法。

reverse() 就地反转数组,如果您只想获取一个元素,则应避免使用。但是,如果您无论如何都要反转数组,这是个不错的选择。

参考

关注【公众号】,了解更多。



支付宝打赏 微信打赏

赞赏一下 坚持原创技术分享,您的支持将鼓励我继续创作!