by @zhangbao(zhangbao) #0108
Так называемый «объект» здесь относится к использованию чего-то вроде
var obj = {}илиvar obj = new Object()Обычные объекты объявляются таким же образом.
Обзор
- Преобразование из объекта в карту:
new Map(Object.entries(obj)) - Преобразование из карты в объект:
Object.fromEntries(map.entries())
Два способа создания карты
Когда мы создаем карту, в дополнение к следующему способу
также можно использоватьnew Map(iterable)грамматика:
Входящий параметр массива состоит из пары ключ-значение ([key, value])состоит из. Этот способ создания более эффективен, чем использованиеmap.setБолее лаконично и удобно.
map.entries()
один из вышеперечисленных[key, value]Также известен какentry. Мы можем сделать этоentriesполучатьmap, то и изmapполучатьentries. Нужно использоватьMap.prototype.entries()методы, определенные в этом экземпляре карты.
или с указанными выше переменнымиmapПример:
map.entries()Результатом является итерируемый объект (MapIterator).с помощьюArray.fromИтерируемые объекты можно превратить в настоящие массивы.
Итак, возникает вопрос - как карты и объекты конвертируются друг в друга? ответС записями эта структура данных.
Итак, давайте знакомитьсяObject.entriesметод.
Object.entries
Как подсказывает название,Object.entriesиспользуется для преобразования объекта в структуру записей.
Вот пример:
Таким образом, мы можем получить форму структуры его записей из объекта. ввести сноваnew Map():
Преобразование «Объект -> Карта» завершено.
💡 Советы:Стоит отметить, что из-за ограничения типа свойства объекта (то есть тип имени свойства объекта может быть только строкой или значением Symbol).При преобразовании объекта в карту существует не более двух типов ключей карты: строки или значения символов.
Object.fromEntries
имеютObject.entries, естьObject.fromEntries. Последнее является обратным действием первого. Синтаксис следующий:
Object.fromEntries(iterable)
Например:
Конечно, приведенная выше демонстрация довольно скучна. серьезно ладитьmap.entriesУдобно использовать в комплексе.
а такжеmap.entriesВ сочетании с:
map.entriesМетод был описан выше. Этот метод используется для преобразования карты в представление итерируемого объекта.
let map = new Map([
['1', 'str1'],
[1, 'num1'],
[true, 'bool1']
]);
Object.fromEntries(map.entries())
// {
// "1": "num1",
// "true": "bool1"
// }
Из результата преобразования в объект выше мы можем видеть['1', 'str1']Пара ключ-значение исчезает, остается[1, 'num1']. а также1также становится"1". причина в том,Имя свойства объекта может быть только строкой или символьным значением., который отличается от ключа карты (ключ карты может быть любого типа). В процессе «Карта -> Объект» все ключи не символьного типа в конечном итоге будутObject.fromEntriesМетод обрабатывается и преобразуется в представление строки.
(над)