我注意到Sets 被归类为 keyed collections,并且根据定义是:
按键排序的数据集合
但是 Set 键不是值索引吗?我不确定为什么它们不像数组一样被归类为索引集合。
谢谢!
因为您无法访问第一个/第二个/第三个 ... 条目。
术语“索引”被创造为 JavaScript 中有序集合中的位置¹。Set
s 和Map
s 可以被视为无序的(尽管它们可以按插入顺序迭代),因此它们没有索引,只有键。
¹我会说其他语言/数据库/等确实以不同的方式创造了这个词。
Sets have 不是索引集合,因为 Set 的每个值都是唯一的,不能重复。Sets 中的值是按添加顺序存储的,因此无需为 Set 创建索引。
我的意思是,当您可以获取 Set 的值时,您不需要索引...通过它的值!Set 的键是值本身。是的,您可以使用for ... of
循环手动检查值的索引。但是这个用例很奇怪。
此外,Set 可用于从现有 Array 中删除重复项,并且索引在这里没有任何作用。
我不知道,我有没有回答你的问题,但很清楚,我想:)