我在一些代码中遇到了这个我正在重新工作,如果除了个人喜好之外有任何理由这样做,我很好奇。考虑到使用具有描述性名称的几个小函数是多么容易,对我来说似乎不必要地混淆了。该代码的目的是验证许多变量,以确保在生成业务数据报告时数据格式正确且在可接受的范围内。该报告主要是一个引起人们关注日程安排问题的工具。
有一个函数可以传递多个值,对每个函数运行测试,然后将所有结果作为布尔数组传回。
function testAll(test1, ..., test10) {
var results = [false, ..., false];
if (test1 condition == true) {
results[0] = true;
}
...
if (test10 condition == true) {
results[9] = true;
}
return results;
}
然后调用该函数并像这样使用。
var tblData = getCurrentData(); // function that gets database info through AJAX
for (i = 0; i < tblData.Rows.Count; i++) {
// some code to append table element
var results = testAll(strStartDate, ..., strTotalHours);
if (results[0] == true) {
$('#startDate' + i.toString()).css('background-color', 'red');
}
...
if (results[9] == true) {
$('#projectTime' + i.toString()).css('background-color', 'red');
}
}
原作者已经离开,并没有评论他的代码
答案 0 :(得分:0)
虽然这在技术上可能无法解决我提出的问题,但在这种情况下,这是清理代码的解决方案。
经过进一步审查后,使用执行css格式化的非值返回函数更有意义,因为评估后的任务有多简单。
- 修改功能
function verifyData(startDate, ..., timeSpent) {
if (startDate isValid != true) {
$('#startDate' + i.toString()).css('background-color', 'red');
}
...
if (timeSpent isValid != true) {
$('#projectTime' + i.toString()).css('background-color', 'red');
}
}
- 调用和使用
的新方法var tblData = getCurrentData(); // function that gets database info through AJAX
for (i = 0; i < tblData.Rows.Count; i++) {
// some code to append table element
verifyData(strStartDate, ..., strTotalHours, i);
}