为什么将集合视为JavaScript中的键集合?

时间:2019-04-17 14:00:04

标签: javascript set keyedcollection

我注意到Sets are being classified as keyed collections,根据定义是:

  

按键排序的数据收集

但是Set键不是值索引吗?我不确定为什么它们不像数组那样被归类为indexed collection

谢谢!

2 个答案:

答案 0 :(得分:0)

因为您无法访问第一/第二/第三...条目。

“索引”一词的出现是JavaScript¹中有序集合中的位置。 SetMap被视为无序的(尽管可以按插入顺序进行迭代),因此它们没有索引,只有键。

¹我想说的是其他语言/数据库/等等对术语的定义也有所不同。

答案 1 :(得分:0)

Set的集合没有索引集合,因为Set的每个值都是唯一的并且不能重复。集合中的值按添加顺序存储,因此无需为集合创建索引。

我的意思是,当您可以通过Set的值获取Set的值时,就不需要索引了!集合的关键是值本身。是的,您可以使用for ... of循环来手动检查值的索引。但是这种用法很奇怪。

此外,该Set可以用于从现有Array中删除重复项,并且这里的索引也无能为力。

我不知道,我是否回答了您的问题,但是很明显,我想:)