-
Binarium
Các nhà môi giới tùy chọn nhị phân tốt nhất! Đào tạo miễn phí và tài khoản demo!
Đăng ký tiền thưởng! -
OpenStreetMap является картой мира, созданной такими же людьми, как и вы, и может свободно использоваться под открытой лицензией.
Хостинг поддерживается UCL, Bytemark Hosting и другими партнёрами.
Объект Map содержит пары ключ-значение и сохраняет порядок вставки. Любое значение (как объекты, так и примитивы) могут быть использованы в качестве ключей.
Синтаксис
Параметры
Описание
Объект Map итерируется в порядке вставки его элементов — цикл for. of будет возвращать массив [key, value] на каждой итерации.
Key equality
Сравнение ключей основано на алгоритме “SameValueZero”: NaN равно NaN (несмотря на то, что NaN !== NaN ), все другие значения рассматриваются равными исходя из семантики оператора строгого равенства === . В текущей спецификации ECMAScript -0 и +0 принимаются равными, но в ранних версиях обсуждения это было не так (см. “Value equality for -0 and 0” в таблице совместимости с браузерами).
Сравнение Объектов и Map
Объекты похожи на Map в том, что оба позволяют устанавливать значения по ключам, получать эти значения, удалять ключи и проверять их наличие. В связи с этим (и потому, что не было встроенных альтернатив), Объекты исторически использовались как Map . Однако, у них есть ряд отличий, который дает преимущества Map в ряде случаев:
- Ключами Объекта выступают Строки и Символы , в то время как любое значение может быть ключом Map , включая функции , объекты и примитивы.
- В отличие от Объектов , ключи в Map упорядочены. Таким образом, во время итерации Map , ключи возвращаются в порядке вставки.
- Вы легко можете получить количество элементов в Map с помощью свойства size , в то время как количество элементов Объекта может быть определено только вручную.
- Map – итерируемый объект и может быть итерирован напрямую, в то время как Объект требует ручного получения списка ключей и их итерации.
- Объект имеет прототип и поэтому имеет стандартный набор ключей, который, при неосторожности, может пересекаться с вашими ключами. С момента выхода ES5 это может быть изменено с помощью map = Object.create(null) .
- Map может иметь более высокую производительность в случаях частого добавления или удаления ключей.
Свойства
Экземпляры Map
Все экземпляры Map наследуются от Map.prototype .
Свойства
Методы
Примеры
Использование объекта Map
Использование NaN в качестве ключей Map
NaN может быть использован в качестве ключа. Несмотря на то, что NaN не равен самому себе ( NaN !== NaN вернёт true), следующий пример работает, потому что NaN обрабатывается особым образом:
-
Binarium
Các nhà môi giới tùy chọn nhị phân tốt nhất! Đào tạo miễn phí và tài khoản demo!
Đăng ký tiền thưởng! -
Итерация Map при помощи for..of
Map может быть итерирован с помощью for..of :
Итерация Map при помощи forEach()
Map может быть итерирован с помощью метода forEach() :
Взаимоотношения с объектом Array
Клонирование и сляние Map
Равно как и Массивы , Map могут быть клонированы:
Следует помнить, что данные не клонируются.
Map могут быть слиты, с сохранением уникальности ключей:
-
Binarium
Các nhà môi giới tùy chọn nhị phân tốt nhất! Đào tạo miễn phí và tài khoản demo!
Đăng ký tiền thưởng! -