@hulktoster

Map это объект или массив?

Изучаю Map:
https://learn.javascript.ru/map-set

Вроде везде в документации сравнивают Map c объектами но когда я вывел в консоль Map:
5ecce0fe4a8b4068715611.png

1) Здесь элементы проиндексированны так же как и в массиве 0, 1, 2
2) Здесь есть вот такая штука [[Entries]]. А entries возвращает массив свойств объекта

Тогда Map это объект или массив? Или он объект но возвращает массив?
  • Вопрос задан
  • 324 просмотра
Решения вопроса 3
Snova_s_vami
@Snova_s_vami
JavaScript ES5-8, TypeScript, Angular
Map - это объект.
JavaScript массив - это тоже объект, так-то, но с авто индексацией элементов. По сути, массивы в JS это экземпляры класса Array.
Отвечая конкретнее на Ваш вопрос, Map это по сути обыкновенный объект с различными методами помощниками. Вы можете и сами такой же сделать накидав методов.
Ответ написан
Комментировать
@dimoff66
Кратко о себе: Я есть
Map это объект, объект не может ничего возвращать, возвращать могут его методы. Другое дело что в отличие от объекта, создаваемого как {}, объект Map итерируемый. Итерация по нему происходит по парам ключ-значение.
Ответ написан
Комментировать
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
В js все объект, что не является примитивом (простые объекты, экземпляры классов, массивы, Map, Set, функции).
Так что да, Map это объект.
А вот массивом он не является, ибоArray.isArray(new Map()) // false
Здесь есть вот такая штука [[Entries]]. А entries возвращает массив свойств объекта
Вообще-то entries возвращает итератор. Итератор - это тоже не массив.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы