javascript - 无法替换 if 语句中的对象值
问题描述
我正在为论坛制作教程,实际上在制作时卡住了!如果为真,如何在我的第一个 if 语句中将字符串 'Uber' 应用于 groupIs?这行不通。谢谢 :)
var User = function(username, groupIs, warnings, postCount) {
this.username = username;
this.groupIs = groupIs;
this.warnings = warnings;
this.postCount = postCount;
}
var worker = new User('Worker', 'Uber', 0, 1500);
var normalMember = new User('ImAnormalMember', 'normal', 0, 2000);
var l33tMember = new User('l33tboy', 'L33t', 0, 800);
var $3picmemberRIP = new User('epicMember', '3pic', 20, 800);
function upgradeChecker(member, group, warning, posts) {
if ((group != 'Uber' && posts > 1000) && warning === 0) {
console.log(member + ' Congrats on Uber !');
group = "Uber";
} else if (posts < 1000 && warning === 0) {
console.log(member + ' You have ' + posts + ' posts, you do not meet the requirements');
} else if (warning != 0 && posts > 1000) {
console.log(member + ' You cannot upgrade with ' + warning + ' warning')
} else if (posts < 1000 && warning != 0) {
console.log(member + ' you have ' + posts + ' posts which is less than 1000 and you have ' + warning + '% warning. You cannot upgrade');
} else {
console.log(member + ' You are already Uber');
}
}
upgradeChecker(worker.username, worker.groupIs, worker.warnings, worker.postCount);
upgradeChecker(normalMember.username, normalMember.groupIs, normalMember.warnings, normalMember.postCount);
upgradeChecker(l33tMember.username, l33tMember.groupIs, l33tMember.warnings, l33tMember.postCount);
upgradeChecker($3picmemberRIP.username, $3picmemberRIP.groupIs, $3picmemberRIP.warnings, $3picmemberRIP.postCount);
解决方案
现在 upgradeChecker 是一个接收数字和字符串并更改这些值的函数。它不会将这些值识别为对象的属性。您可以做的是修改该函数,使其接收完整的对象,然后修改其属性。
var User = function(username, groupIs, warnings, postCount) {
this.username = username;
this.groupIs = groupIs;
this.warnings = warnings;
this.postCount = postCount;
}
var worker = new User('Worker', 'Uber', 0, 1500);
var normalMember = new User('ImAnormalMember', 'normal', 0, 2000);
var l33tMember = new User('l33tboy', 'L33t', 0, 800);
var $3picmemberRIP = new User('epicMember', '3pic', 20, 800);
function upgradeChecker(user) {
if ((user.groupIs != 'Uber' && user.postCount > 1000) && user.warnings === 0) {
console.log(user.username + ' Congrats on Uber !');
user.groupIs = "Uber";
} else if (user.postCount < 1000 && user.warnings === 0) {
console.log(user.username + ' You have ' + user.postCount + ' posts, you do not meet the requirements');
} else if (user.warnings != 0 && user.postCount > 1000) {
console.log(user.username + ' You cannot upgrade with ' + user.warnings + ' warning')
} else if (user.postCount < 1000 && user.warnings != 0) {
console.log(user.username + ' you have ' + user.postCount + ' posts which is less than 1000 and you have ' + user.warnings + '% warning. You cannot upgrade');
} else {
console.log(user.username + ' You are already Uber');
}
}
upgradeChecker(worker);
upgradeChecker(l33tMember);
upgradeChecker($3picmemberRIP);
upgradeChecker(normalMember);
console.log(normalMember.groupIs);
推荐阅读
- vue.js - 数据表VueJS不显示数据
- django - Django:ModelForm在clean函数中获取ManyToMany字段
- build - Lineageos 培根构建失败
- c#-5.0 - 如何在 .net 核心 WebApi 中为用户注册用例构建 .NET 无状态状态机
- angular - 当您无法设置回调函数名称时,如何使用 Angular 向静态文件发出 JSONP 请求?
- python - 加权肯德尔 Tau
- sql - MS Access - 带有 2 个文本框的主菜单表单,用于打开和过滤不同的表单 - 类型不匹配(运行错误 13)
- python-3.x - 如何从一个嵌套字典中删除出现在另一个字典中的所有重复条目?
- r - 使用欧洲防风草模型预测 R 中的栅格
- reactjs - 我可以将状态钩子作为道具传递给组件吗?