简介
你将学习本章包含的主题,其中包括使用数组和数组方法。
古希腊诗人阿尔基洛科斯曾写道:“狐狸懂得许多事情,而刺猬只懂一件重要的事。”伟大的历史学家以赛亚·柏林认为,所有思想家要么是刺猬,要么是狐狸。我认为语法也是如此。
正如你所见,const 就是一个刺猬。它只能做一件事——声明不可更改的值。正因为只做一件事,它让代码变得清晰且可预测。在接下来的技巧中你会看到,数组方法都是刺猬。它们对数组只能做一件事,但做得非常出色,因此你可以安全地预测结果,而无需深入细节。
总的来说,你应该优先使用那些只做一件事却做得很好的语法。但有时你也需要灵活性。数组正是最典型的狐狸,因为它能做很多事情。事实上,它几乎能满足你对信息集合的所有需求。更重要的是,许多其他数据结构都借鉴了通常与数组相关的概念。
例如,当你处理一个字符串 'hedgehog' 时,你会发现很多原本用于数组的操作同样适用于它:
- 可以获取长度:
'hedgehog'.length返回8。 - 也可以通过索引获取单个字符:
'hedgehog'[3]返回'g'。
还有太多其他方法,列举完会花费太长时间。
这些方法并不专属于数组(它们依赖于一个叫 Iterator 的特性),但它们最直观地与数组相关联。当你仔细研究数组时,你会对其他数据结构有更深入的理解。数组懂得很多东西。它们是狐狸。
本章内容包括什么?
在本章中,你将看到数组正变得越来越好。它们不仅是满足多种数据需求的优秀选择,还引入了新的语法,能够将许多常见操作简化为一行代码,同时减少可能引发微妙错误的修改操作。请特别留意——这些理念将在后续技巧中再次出现。
首先,你会了解到数据总是可以转换为数组,包括在必要时将其他集合(如对象)转换为数组。接着,你将学习一些新语法,比如 includes() 用于检测数组中是否存在某元素,以及至关重要的展开运算符,用三个点(...)表示。展开运算符在现代数组使用中极为重要,接下来的两个技巧将深入探讨它如何改变你在代码中使用数组的方式。请务必专注——你将在未来的多个技巧中反复见到展开运算符。
为了保持代码的可读性,应坚持使用简单、可预测的方法(刺猬)。但要实现代码的灵活性,则需要数组能够在不同结构间自由转换。这是一场艰难的平衡,但两者都需要。如果你能清晰理解数组,JavaScript 中的几乎所有操作都会变得更加轻松。
现在,让我们开始深入探索,看看数组如何提供大多数集合无法比拟的灵活性。