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
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Хочу получить эффект закруглённости поэтому нужен пока слайдер крутиться дать уже стилино для этого нужен быстро узнать предыдущую и следующую...
Необходимо получить стороннее время с сервера http://time100ru