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

Подсчет свойств в объекте JavaScript

Привет всем! У меня есть объект в JavaScript и мне нужно выяснить сколько в нем свойств. Есть ли какой-то стандартный способ это сделать? Может быть встроенный метод или общепринятый подход?

const userInfo = {};
userInfo["name"] = "Алексей";
userInfo["surname"] = "Петров";
userInfo["years"] = 25;
userInfo["city"] = "Москва";

Хочется получить число 4 в данном случае. Какие варианты существуют для решения этой задачи? Буду благодарен за любые советы и примеры кода.

Можешь еще for…in использовать со счетчиком. Громоздче чем Object.keys(), зато удобно если нужна дополнительная логика при подсчете. Кстати, у тебя там вложенные объекты есть? Тогда подход будет другой.

Чтобы узнать количество свойств в объекте, можно использовать Object.keys(userInfo).length. Это самый надежный способ, так как он возвращает массив всех перечисляемых ключей, а затем просто считаем его длину. Если нужно учитывать и неперечисляемые свойства, подойдет Object.getOwnPropertyNames(), но это не всегда нужно. Так что первый вариант идеально подходит для большинства случаев.

Обычно использую Object.keys(), но недавно нашел еще один вариант - Object.entries(userInfo).length. Работает так же, только entries дает пары ключ-значение. Иногда удобнее, если потом нужно работать с данными. В целом зависит от задачи - для простого подсчета keys() лучше всего, проверял много раз.