我想要一个具有某些属性的对象数组,并想要检查该对象是否具有特定的属性,而且我还希望该对象在数组中不具有该属性,然后如果存在则返回false,然后返回true,但是我从不想使用if else语句,我想用三元运算符来做,但是我在函数内的以下代码中有一些问题。
let users = {
Alan: {
age: 27,
online: true
},
Jeff: {
age: 32,
online: true
},
Sarah: {
age: 48,
online: true
},
Ryan: {
age: 19,
online: true
}
};
function isEveryoneHere(obj) {
return (users.Alan) ? true : (users.Jeff) ? true : (users.Ryan) ? true : (users.Sarah) ? true : false;
}
console.log(isEveryoneHere(users));
这里有很多要解压的内容,但让我们从您的用户列表开始。
当存储列表时,通常最好使用Array,因为这将使您可以访问every之类的数组方法。
将“名称”移动到对象中使其完全符合数组语法,并且您仍然可以使用find来按名称获取条目。
第二,现在我们有了数组方法,三元方法是多余的。我们仅询问列表中的每个对象是否都具有true
online
属性。这样可以大大提高代码的可读性,并使我们免于不断重新发明现有的解决方案。
以下是上述几点的示例:
var users = [{
name: 'Alan',
age: 27,
online: true
}, {
name: 'Jeff',
age: 32,
online: true
}, {
name: 'Sarah',
age: 48,
online: true
}, {
name: 'Ryan',
age: 19,
online: true
}];
function isEveryoneHere(users) {
return users.every(function(user) {
return user.online;
});
}
console.log(isEveryoneHere(users));
这里有很多要解压的内容,但让我们从您的用户列表开始。
当存储列表时,通常最好使用Array,因为这将使您可以访问every之类的数组方法。
将“名称”移动到对象中使其完全符合数组语法,并且您仍然可以使用find来按名称获取条目。
第二,现在我们有了数组方法,三元方法是多余的。我们仅询问列表中的每个对象是否都具有true
online
属性。这样可以大大提高代码的可读性,并使我们免于不断重新发明现有的解决方案。
以下是上述几点的示例:
var users = [{
name: 'Alan',
age: 27,
online: true
}, {
name: 'Jeff',
age: 32,
online: true
}, {
name: 'Sarah',
age: 48,
online: true
}, {
name: 'Ryan',
age: 19,
online: true
}];
function isEveryoneHere(users) {
return users.every(function(user) {
return user.online;
});
}
console.log(isEveryoneHere(users));