у меня
my_map: { [name: string]: string }
Как проверить, является ли хэш-карта my_map
пустой?
Я могу думать о Object.keys(my_map).length === 0
, но это кажется излишним.
TLDR; Решение см. Ответ ниже
Это не перебор. Нет лучшего общего решения.
Если вы ограничиваете проверку для объекта, который наверняка является хэш-картой, вы можете использовать:
export function isHashmapEmpty<V>(hash: { [key: string]: V }): boolean {
return Object.keys(hash).length === 0;
}
export function isNumHashmapEmpty<V>(hash: { [key: number]: V }): boolean {
return Object.keys(hash).length === 0;
}
Интересно, что вы не можете иметь универсальную функцию на хэш-карте , поэтому вы вынуждены иметь две функции, что довольно уродливо.
И вообще:
function isEmptyObject(obj: any) {
return Object.keys(obj).length === 0 && obj.constructor === Object;
}