万物皆有其美,但并非人人都能发现。——<安迪.沃霍尔>
介绍
获取列表/数组的最后一个元素是一个常见的操作。在本教程中,我们将看看如何获取 JavaScript 数组/列表中的最后一个元素。
JavaScript 是一种弱类型或无类型语言,这意味着在使用之前不需要声明变量的类型,因为 JavaScript 通过读取变量的值来确定类型。
1 | let myList = ['cl9000', 12, 'admin', 56, 'We', 10]; |
JavaScript 中数组/列表中的元素索引与其他语言非常相似。我们可以访问一个元素,基于它的索引,通过在方括号中传递它[]
,引用数组。最后一个元素的索引为 length-1
。
由于 length
字段仅返回元素的保存值 - 这是一种快速、高效且廉价的操作。获取 JavaScript
数组/列表最后一个元素的最佳方法是:
1 | var lastElement = myList[myList.length - 1]; |
使用 pop() 获取最后一个元素
pop()
方法返回集合的最后一个元素,但在此过程中将其删除。但是,如果我们使用 ES6
中的 扩展运算符(...)
- 我们可以通过在内存中临时复制列表并 pop()
在副本上执行,保持原始列表完整来避免此功能。
*pop()` 方法
我们使用 pop()
从列表中删除最后一个元素:
1 | var lastElement = myList.pop(); |
如果您不需要原始列表保持完整,那么您可以从中弹出元素,但如果您确实需要原始列表,您可以制作一个副本并 pop()
从中复制。
带有 ES6 扩展运算符(…) 的 pop()
ES6
是 EcmaScript6
的缩写,它是一种JavaScript
标准,用于使 JavaScript
编程更容易(编码更少,但做得更多)。
它成立于 1997 年,它的第一个重大突破是在 2015 年,使用 ES6 标准(或 EcmaScript2015)。最新版本是 2020 年开发的第 11 个版本。所有版本都旨在使 JavaScript 编码更容易(使用新的语法规则、新的关键字等)。
我们在这里可以利用的是 扩展运算符(...)
除其他功能外,扩展运算符可以复制列表/数组:
1 | [...myList] |
这将生成一个新列表,其元素与myList. 话虽如此 - 我们可以pop()从新列表而不是原始列表中:
1 | console.log([...myList].pop()) |
注意:这可能很方便编写,但不是最优的解决方案,因为它复制了一个列表。对于小列表,它不会大幅降低性能,但是对于更长的列表,这是简单地获取最后一个元素的低效方法。
使用slice()获取最后一个元素
slice(a, b)
方法
1 | console.log(myList.slice(1, 4)) |
注意:
slice()
当您想检索数组的最后N 个元素而不是一个元素时,最好使用它,因为您可以简单地使用它length-1。
使用 reverse() 获取最后一个元素
reverse()方法就地反转列表。最后一个元素将成为第一个元素,反之亦然:
1 | console.log(myList.reverse()) |
现在我们的元素是第一个,所以我们可以使用myListReversed[0].
注意:反转数组/列表也是一个潜在的非常昂贵的操作。如果您只想访问最后一个元素,请避免反转集合。如果您无论如何都要反转它 - 您可以像这样访问元素。如果没有,请参考第一种使用方法length-1。
总结
其中最好、最有效且可能最直观的方法是第一种 - myList[myList.length()-1]
. 这是您大部分时间将使用的。
使用 pop()
从列表中删除元素并返回它。如果您想删除元素 - 这是您想要使用的方法,否则,您将不得不手动删除元素。
slice()
给我们一个切片,如果我们想获得最后 N 个元素,这是一个很好的方法。
reverse()
就地反转数组,如果您只想获取一个元素,则应避免使用。但是,如果您无论如何都要反转数组,这是个不错的选择。
参考
关注【公众号】,了解更多。
赞赏一下 坚持原创技术分享,您的支持将鼓励我继续创作!