var schedule = {
name: "Петя",
user: 'Root',
password: 333,
age: 20
};
function isEmpty(obj) {
for (var key in schedule) {
return console.log(false);
}
return console.log(true);
}
isEmpty(schedule);
Правильное решение или можно, но это не значит, что нужно так делать ?
Создайте функцию isEmpty(obj), которая возвращает true, если в объекте нет свойств и false – если хоть одно свойство есть.
function isEmpty(obj) {
return Object.keys(x).length === 0;
}
Решение неверное, так как всегда возвращает undefined.
Вместо этого нужно возвращать результат:
var schedule = {
name: "Петя",
user: 'Root',
password: 333,
age: 20
};
function isEmpty(obj) {
for (var key in schedule) {
return false;
}
return true;
}
console.log(isEmpty(schedule));
Кроме этого не совсем ясен момент с присутствием свойств в прототипе объекта, если они не должны учитываться, то нужно добавить дополнительную проверку с hasOwnProperty
Альтернативным решением может быть использование Object.keys либо Object.entries, однако в этом случае вместо простой проверки наличия, сначала будет получен список всех свойств и лишь затем проверка его длины.
Еще один подводный камень: наличие в объекте не перечисляемых свойств.
Если их наличие так же должно учитываться, вместо for..in или Object.keys нужно воспользоваться Object.getOwnPropertyDescriptors
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости