Почему наборы считаются наборами ключей в JavaScript? - PullRequest
0 голосов
/ 17 апреля 2019

Я заметил, что Наборы классифицируются как наборы ключей , и согласно определению это:

наборы данных, которые упорядочены по ключу

но не задают ли ключи индексы значений?Я не уверен, почему они не классифицируются как индексированная коллекция , как массивы.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 17 апреля 2019

Наборы не являются индексированной коллекцией, потому что каждое значение набора уникально и не может быть продублировано. Значения в наборах хранятся в порядке добавления, поэтому нет необходимости создавать индексы для набора.

Я имею в виду, вам не нужны индексы, когда вы можете получить значение Set ... по его значению! Ключ набора - это само значение. Да, вы можете вручную проверить индекс значения, используя цикл for ... of. Но сценарий использования этого довольно странный.

Кроме того, Set можно использовать для удаления дубликатов из существующего массива, и, опять же, индексы здесь не имеют силы.

Не знаю, ответил я на твой вопрос или нет, но, думаю, довольно ясно:)

0 голосов
/ 17 апреля 2019

Поскольку вы не можете получить доступ к первой / второй / третьей ... записи.

Термин «индекс» придуман как позиция в упорядоченной коллекции в JavaScript¹.Set s и Map s можно рассматривать как неупорядоченные (хотя они могут повторяться в порядке вставки), поэтому у них нет индексов, только ключи.

¹ Я бы сказал, что другие языки / базы данных /и т. д. обозначают этот термин иначе.

...