PS:原文只介绍了Array和Set的一些简单操作,详细API放在文章底部。
Array和Set是什么
每一个使用JavaScript编程的人都应该对Array非常熟悉。 通常,我们可以这样形容它:数组是表示一种储存在连续空间中的结构类型(内容可以为number,object等)。 例如:[1, 2, 3, 4, 5]
(原文这里说法存在歧义,具体数组在内存中的存储方式可以参考链接一、链接二)
而Set更像是一种抽象的数据类型。它只包含不同的元素/对象,不需要连续分配存储空间。 例如:{1, 2, 3}
它们之间最大的差别就是Array中的元素是可以重复的,而Set中的元素不可重复 。除此之外,Array被认为是一种索引集合,而Set是一种键的集合。
索引集合是指按下标作为索引值排序的数据结构
键的集合使用key访问元素,访问顺序与元素插入顺序一致。
很简单对吧?现在可能有人会问,既然这两者如此不同,为什么还要将它们进行比较?
在编程时,我们可以使用Array或Set来存储相同的数据集。但根据使用情况,我们应该选用正确的数据结构以助于提供最佳的解决方案。为了实现这个目标,首先我们需要了解它们分别是什么,有什么特点和能力。前面的文章中我们对这两种数据结构已经有了初步的了解,接下来就来看看它们的构建方式。
如何构建
Array
数组的构建非常简单直接,在JS中声明一个数组你可以直接使用字面上的语法:
var arr = []; //空数组
var arr = [1,2,3]; //元素为1,2,3的数组
复制代码
或者使用构造函数:
var arr = new Array(); //空数组
var arr = new Array(1,2,3);//元素为1,2,3的数组
复制代码