Как посчитать количество собственных свойств объекта?
Задание: Напиши функцию countProps(object), которая считает и возвращает количество собственных свойств объекта в параметре object. Используй переменную propCount для хранения количества свойств объекта.
Помогите, пожалуйста, подправить мой вариант:
function countProps(object) {
let propCount = 0;
for (const key in object) {
if (object.hasOwnProperty(key)){
propCount += key;
}
}
return propCount;
}
Ответы (2 шт):
При использовании for..in в переменную key помещается сам ключ, являющийся строкой.
Таким образом в текущей реализации собирается большая строка, содержащая имена всех перечислимых ключей.
Для того, чтобы найти количество, достаточно было увеличивать счетчик на единицу
for (const key in object) {
if (object.hasOwnProperty(key)){
propCount += 1;
}
}
Напиши функцию countProps(object), которая считает и возвращает количество собственных свойств объекта в параметре object.
Метод Object.keys() возвращает массив из собственных перечисляемых свойств переданного объекта, в том же порядке, в котором они бы обходились циклом for...in (разница между циклом и методом в том, что цикл перечисляет свойства и из цепочки прототипов). https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
function countProps(object) {
const propCount = Object.keys(object).length
return propCount;
}