Как узнать количество свойств в JavaScript объекте

Я работаю с объектом в JavaScript и хочу узнать, сколько у него свойств. Используется ли какой-то стандартный способ или рекомендуемая практика для получения количества свойств объекта?

const userDetails = {};
userDetails["firstName"] = "Александр";
userDetails["lastName"] = "Сидоров";
userDetails["age"] = 30;
userDetails["country"] = "Россия";

Я ожидаю получить число 4, так как объект содержит 4 свойства. Какие способы я могу использовать для этого? Можно ли воспользоваться чем-то вроде length, как в массивах, или же есть другие методы?

Еще вариант - Object.getOwnPropertyNames(obj).length. Он захватывает неперечислимые свойства, в отличие от Object.keys(). Хотя для твоих обычных объектов разницы не будет. Я просто использую Object.keys() - короче и почти всегда работает.

Объекты не имеют length как массивы, но можно легко посчитать их свойства. Самый простой способ - это использовать Object.keys(userDetails).length, что даст массив ключей и покажет их количество. Также можно применить Object.entries(userDetails).length для получения пар ключ-значение. Обычно я предпочитаю первый вариант, он более понятный. В твоем случае оба метода покажут 4.

Если нужны наследованные свойства, используй цикл for…in и увеличивай счетчик. Но это редко требуется. А зачем тебе вообще считать свойства? Возможно, есть лучший способ решить твою задачу?