let myObj = {
name: 'Mark',
age: 32,
working: 'yes'
}
Как мне проверить, есть ли в myObj хотя бы одна запись? Object.keys (myObj) .length дает 3, что является длиной ключей (очевидно). Я хотел бы проверить, имеет ли он значение, а не пусто?
Верный. Это мой вопрос.
Я не уверен, почему этот вопрос был отклонен. Ответы и ответ не походили на непонятный вопрос. какая разница :)



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Так что проверьте значения свойств. Вы можете использовать функцию some и проверить, имеет ли хотя бы одно свойство значение, отличное от null и undefined.
let myObj = {
name: 'Mark',
age: 32,
working: 'yes'
};
const hasOne = Object.keys(myObj).some(key => myObj[key] !== null && myObj[key] !== undefined);
console.info(hasOne);В es6 это можно сделать с помощью комбинации Object.values и метода массива .some:
Object.values(myObj).some(Boolean)
Это будет верно только в том случае, если myObj содержит хотя бы одно значение, которое не является ложным. Значения ложных значений: undefined, null, 0, NaN, "" и false.
Я искал один лайнер, и это работает. Однако сейчас я смотрю на свою бизнес-логику и думаю, нужно ли принудительно вводить значения хотя бы в нескольких полях. Спасибо за быстрый ответ и время.
Вы можете сделать что-то подобное.
let myObj1 = {
name: 'Mark',
age: 32,
working: 'yes'
};
let myObj2 = {};
let myObj3 = {
name: null,
age: null,
working: null
};
function validateObj(obj) {
for (var prop in obj) {
if (obj.hasOwnProperty(prop)) {
if (obj[prop]) return true;
}
}
return false;
}
console.info(validateObj(myObj1)); // true
console.info(validateObj(myObj2)); // false
console.info(validateObj(myObj3)); // false
По умолчанию все ответы проходят голосование. Я ничего не делал. Даже мой вопрос отвергнут. Не знаю почему.
Поменял голосование. Спасибо за ваш ответ. Я все еще анализирую, какой из всех имеющихся у меня ответов использовать. Спасибо за ваше время.
Чтобы уточнить, вы хотите знать, есть ли у объекта хотя бы один ключ с истинным значением? Например:
{foo: "bar"}в порядке, а{foo: undefined}- нет?