upsert
Map
Что такое Map в JavaScript?
upsert
Map
Map
Object
Отсутствие прототипов : В отличие от Object
, у Map
нет прототипов, поэтому он не содержит встроенных ключей, пока вы их не добавите. : В Ключи любого типа Map
ключом может быть что угодно — от примитивов до функций и объектов. : `Карта Порядок вставки Map
запоминае : Количе Легкий доступ к размеру Map
можно легко получить с помощью свойства size
. Итерируемость : Map
является итерируемым, что упрощает его использование в циклах и других конструкциях. показывает : Map
Производительность Object
.
Создание и использование Map
Map
let example = new Map();
example.set('test', 'value');
Теперь, если вы добавите элемент с уже существующим ключом, его значение будет перезаписано:
example.set('test', true);
Но что делать, если вам нужно добавить элемент только в том случае, если его еще нет, или обновить его значение, если элемент уже существует? Обычно это требует дополнительной проверки:
if (!example.has('test')) {
example.set('test', 'new value');
}
example.get('test').myFunctionForMessingWithThisKeyEntry();
upsert
Что такое upsert и как она работает?
upsert
Map
upsert
Ключ элемента, который вы хотите проверить или добавить. Функция для существующего элемента — выполняется, если Функция для нового элемента — выполняется, если элемент не существует.
upsert
example
.upsert('test', undefined, () => 'new value')
.myFunctionForMessingWithThisKeyEntry();
test
example.upsert('test', old => old.someOperation(), undefined);
old
map.get('test')
someOperation()
Преимущества upsert
upsert
Map
Текущий статус функции
upsert
Map
Заключение
upsert
Map