B2B网络软件
标题:
JS巧妙地组合使用各种条件语句
[打印本页]
作者:
YYPOST群发软件
时间:
4 小时前
标题:
JS巧妙地组合使用各种条件语句
JS巧妙地组合使用各种条件语句
2.png
(745.91 KB, 下载次数: 0)
下载附件
4 小时前
上传
1.png
(389.68 KB, 下载次数: 0)
下载附件
4 小时前
上传
/**
* 复杂条件语句示例 - 员工绩效评估和奖金计算系统
* 展示 ES5 兼容的复杂条件逻辑实现
* 适用于 AIWROK IDE 和 Rhino 引擎环境
*🍎交流QQ群711841924群一,苹果内测群,528816639
*/
// 员工信息构造函数(ES5 兼容)
function Employee(name, department, position, yearsOfService) {
this.name = name;
this.department = department;
this.position = position;
this.yearsOfService = yearsOfService;
this.performanceScore = 0;
this.bonusRate = 0;
this.baseSalary = 0;
}
// 绩效评估系统
var PerformanceEvaluator = {
// 计算基础绩效分数
calculateBaseScore: function(employee) {
var score = 0;
// 使用 switch 语句根据部门设置基础分数
switch (employee.department) {
case "技术部":
score = 85;
break;
case "销售部":
score = 80;
break;
case "市场部":
score = 82;
break;
case "人事部":
score = 78;
break;
default:
score = 75;
}
return score;
},
// 根据职位调整分数
adjustScoreByPosition: function(baseScore, position) {
var adjustedScore = baseScore;
// 使用 if...else if...else 进行多条件判断
if (position === "经理") {
adjustedScore += 10;
} else if (position === "主管") {
adjustedScore += 7;
} else if (position === "高级工程师") {
adjustedScore += 5;
} else if (position === "中级工程师") {
adjustedScore += 3;
} else {
adjustedScore += 1;
}
return adjustedScore;
},
// 根据工龄调整分数
adjustScoreByYears: function(score, years) {
var finalScore = score;
// 复杂的嵌套条件判断
if (years >= 10) {
if (years >= 15) {
finalScore += 8;
} else {
finalScore += 6;
}
} else if (years >= 5) {
if (years >= 8) {
finalScore += 4;
} else {
finalScore += 2;
}
} else if (years >= 2) {
finalScore += 1;
}
return finalScore;
},
// 综合评估员工绩效
evaluateEmployee: function(employee) {
var baseScore = this.calculateBaseScore(employee);
var positionAdjusted = this.adjustScoreByPosition(baseScore, employee.position);
var finalScore = this.adjustScoreByYears(positionAdjusted, employee.yearsOfService);
// 确保分数在合理范围内
if (finalScore > 100) {
finalScore = 100;
} else if (finalScore < 0) {
finalScore = 0;
}
employee.performanceScore = finalScore;
return finalScore;
}
};
// 奖金计算系统
var BonusCalculator = {
// 根据绩效分数计算奖金比例
calculateBonusRate: function(performanceScore) {
var rate = 0;
// 复杂的条件链
if (performanceScore >= 95) {
rate = 0.5; // 50% 奖金
} else if (performanceScore >= 90) {
rate = 0.4; // 40% 奖金
} else if (performanceScore >= 85) {
rate = 0.3; // 30% 奖金
} else if (performanceScore >= 80) {
rate = 0.2; // 20% 奖金
} else if (performanceScore >= 75) {
rate = 0.1; // 10% 奖金
} else {
rate = 0; // 无奖金
}
return rate;
},
// 根据部门调整奖金
adjustBonusByDepartment: function(baseRate, department) {
var adjustedRate = baseRate;
// 使用 switch 语句处理部门特殊政策
switch (department) {
case "销售部":
// 销售部门有额外激励
if (baseRate > 0) {
adjustedRate += 0.1;
}
break;
case "技术部":
// 技术部门有项目奖金
if (baseRate >= 0.3) {
adjustedRate += 0.05;
}
break;
case "市场部":
// 市场部门有季节性调整
var currentMonth = new Date().getMonth();
if (currentMonth >= 9 && currentMonth <= 11) { // 第四季度
if (baseRate > 0) {
adjustedRate += 0.08;
}
}
break;
}
// 确保奖金比例不超过 60%
if (adjustedRate > 0.6) {
adjustedRate = 0.6;
}
return adjustedRate;
},
// 计算最终奖金
calculateBonus: function(employee, baseSalary) {
var baseRate = this.calculateBonusRate(employee.performanceScore);
var finalRate = this.adjustBonusByDepartment(baseRate, employee.department);
employee.bonusRate = finalRate;
employee.baseSalary = baseSalary;
return baseSalary * finalRate;
}
};
// 员工分类系统
var EmployeeClassifier = {
// 根据绩效和工龄分类员工
classifyEmployee: function(employee) {
var classification = "";
// 复杂的嵌套条件判断
if (employee.performanceScore >= 90) {
if (employee.yearsOfService >= 5) {
classification = "核心员工";
} else {
classification = "高潜力员工";
}
} else if (employee.performanceScore >= 80) {
if (employee.yearsOfService >= 8) {
classification = "资深员工";
} else if (employee.yearsOfService >= 3) {
classification = "稳定员工";
} else {
classification = "新员工";
}
} else if (employee.performanceScore >= 70) {
if (employee.yearsOfService >= 5) {
classification = "待提升员工";
} else {
classification = "观察员工";
}
} else {
classification = "待改进员工";
}
return classification;
},
// 生成绩效报告
generateReport: function(employee) {
var report = "【员工绩效报告】\n";
report += "姓名: " + employee.name + "\n";
report += "部门: " + employee.department + "\n";
report += "职位: " + employee.position + "\n";
report += "工龄: " + employee.yearsOfService + "年\n";
report += "绩效分数: " + employee.performanceScore + "分\n";
report += "奖金比例: " + (employee.bonusRate * 100) + "%\n";
report += "员工分类: " + this.classifyEmployee(employee) + "\n";
// 使用 switch 语句添加建议
var classification = this.classifyEmployee(employee);
report += "\n【发展建议】\n";
switch (classification) {
case "核心员工":
report += "- 考虑晋升机会\n";
report += "- 赋予更多管理职责\n";
report += "- 提供股权激励\n";
break;
case "高潜力员工":
report += "- 提供专业技能培训\n";
report += "- 安排导师指导\n";
report += "- 给予挑战性项目\n";
break;
case "资深员工":
report += "- 经验分享和传承\n";
report += "- 参与重要决策\n";
report += "- 保持工作热情\n";
break;
case "稳定员工":
report += "- 提升专业技能\n";
report += "- 增加工作挑战性\n";
report += "- 职业发展规划\n";
break;
case "待提升员工":
report += "- 制定改进计划\n";
report += "- 提供必要培训\n";
report += "- 定期绩效回顾\n";
break;
case "观察员工":
report += "- 明确工作期望\n";
report += "- 提供指导支持\n";
report += "- 设定短期目标\n";
break;
case "待改进员工":
report += "- 制定详细改进计划\n";
report += "- 考虑岗位调整\n";
report += "- 必要时启动PIP流程\n";
break;
}
return report;
}
};
// 主评估流程
function evaluateEmployeePerformance(name, department, position, yearsOfService, baseSalary) {
// 创建员工对象
var employee = new Employee(name, department, position, yearsOfService);
// 评估绩效
var performanceScore = PerformanceEvaluator.evaluateEmployee(employee);
// 计算奖金
var bonus = BonusCalculator.calculateBonus(employee, baseSalary);
// 生成分类
var classification = EmployeeClassifier.classifyEmployee(employee);
// 生成报告
var report = EmployeeClassifier.generateReport(employee);
// 输出结果
var result = report;
result += "\n【奖金信息】\n";
result += "基础工资: ¥" + baseSalary + "\n";
result += "奖金金额: ¥" + bonus.toFixed(2) + "\n";
result += "总薪资: ¥" + (baseSalary + bonus).toFixed(2) + "\n";
return result;
}
// 批量评估示例
function batchEvaluateEmployees() {
var employees = [
{name: "张三", department: "技术部", position: "高级工程师", years: 6, salary: 15000},
{name: "李四", department: "销售部", position: "经理", years: 8, salary: 20000},
{name: "王五", department: "市场部", position: "主管", years: 4, salary: 12000},
{name: "赵六", department: "人事部", position: "专员", years: 2, salary: 8000},
{name: "钱七", department: "技术部", position: "经理", years: 12, salary: 25000}
];
var allResults = "【批量员工绩效评估结果】\n";
allResults += "========================================\n\n";
for (var i = 0; i < employees.length; i++) {
var emp = employees[i];
allResults += evaluateEmployeePerformance(
emp.name,
emp.department,
emp.position,
emp.years,
emp.salary
);
allResults += "\n========================================\n\n";
}
return allResults;
}
// 演示函数
function demonstrateComplexConditionals() {
console.log("=== 复杂条件语句示例 - 员工绩效评估系统 ===\n");
// 单个员工评估示例
console.log("【单个员工评估示例】");
var singleResult = evaluateEmployeePerformance("张三", "技术部", "高级工程师", 6, 15000);
console.log(singleResult);
console.log("\n【批量员工评估示例】");
var batchResult = batchEvaluateEmployees();
console.log(batchResult);
// 特殊条件测试
console.log("【边界条件测试】");
var edgeCaseResult = evaluateEmployeePerformance("测试员工", "技术部", "实习生", 0, 5000);
console.log(edgeCaseResult);
}
// 执行演示
demonstrateComplexConditionals();
复制代码
欢迎光临 B2B网络软件 (http://bbs.niubt.cn/)
Powered by Discuz! X3.2